QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#425726 | #6695. Matching | xorzj# | WA | 54ms | 5584kb | C++17 | 1.2kb | 2024-05-30 16:16:01 | 2024-05-30 16:16:02 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
#define endl "\n"
#define ALL(x) (x).begin(), (x).end()
void solve()
{
int n;
cin >> n;
vector<int> a(n + 1);
map<int, vector<int>> g;
for (int i = 1; i <= n; i++)
{
cin >> a[i];
a[i] -= i;
g[a[i]].push_back(a[i] + i);
}
ll ans = 0;
for (auto [x, adj] : g)
{
sort(ALL(adj), greater<int>());
if (adj.size() == 1)
{
continue;
}
if (adj.size() == 2)
{
ans += max(0, adj[0] + adj[1]);
continue;
}
for (int i = 0; i + 1 < adj.size(); i++)
{
if (adj[i + 1] > 0)
{
ans += adj[i] + adj[i + 1];
i++;
}
else
{
if (a[i] + adj.back() > 0)
{
ans += a[i] + adj.back();
break;
}
}
}
}
cout << ans << "\n";
}
int main()
{
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int t;
cin >> t;
while (t--)
{
solve();
}
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1ms
memory: 3680kb
input:
3 9 3 -5 5 6 7 -1 9 1 2 3 -5 -4 -3 3 1 10 100
output:
30 0 0
result:
ok 3 number(s): "30 0 0"
Test #2:
score: -100
Wrong Answer
time: 54ms
memory: 5584kb
input:
5504 9 -1 -7 -6 -5 -4 -3 5 -1 0 5 999999995 999999993 999999995 999999995 999999995 5 3 -6 -5 -4 -2 4 -8 2 3 -5 4 -2 -1 0 1 9 -4 -9 3 -1 -1 -5 2 -3 -5 7 -1 -2 1 2 3 4 3 4 -2 5 2 -4 10 2 4 1 -3 -2 4 5 -3 0 -4 6 -1 0 1 2 4 -3 5 -4 -3 -2 -1 0 4 -1 0 1 2 8 1 0 -4 -1 0 -5 -3 -5 2 5 6 8 -4 -3 -2 -1 0 1 2 ...
output:
4 1999999988 0 5 0 0 11 0 9 3 0 3 0 11 5 9 0 1999999989 13 1 11 7 1999999981 40 0 11 0 5 0 0 7 9 1 14 4 3 0 7 23 0 5 1999999997 0 3 5999999976 3 16 5999999943 5999999933 5 0 11 0 9 12 0 5 8 3999999982 12 0 7 0 0 3 3 0 1999999994 3999999972 0 0 16 0 0 0 7 2 0 8 0 5999999964 16 0 1 1999999995 27 0 54 ...
result:
wrong answer 5th numbers differ - expected: '1', found: '0'