#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ff first
#define ss second
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
#define N 200005
const ll MOD = 1'000'000'007;
const int INF = 0x3f3f3f3f;
set<pair<ll, ll> > a, p;
ll ans = 0;
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n;
cin>>n;
for(ll x, i = 1; i <= n; ++i){
cin>>x;
x *= -1;
a.insert({i, x});
p.insert({x, i});
}
for(int i = 1; i <= (n + 1) / 2; ++i){
pair<ll, ll> x = *p.begin();
swap(x.ff, x.ss);
ans -= x.ss;
auto it = a.find(x);
x.ss *= -1;
p.erase({it -> ss, it -> ff});
it = a.erase(it);
if(it != a.end()){
x.ss += it -> ss;
p.erase({it -> ss, it -> ff});
it = a.erase(it);
}
if(it != a.begin()){
--it;
x.ss += it -> ss;
p.erase({it -> ss, it -> ff});
a.erase(it);
}
a.insert(x);
p.insert({x.ss, x.ff});
cout<<ans<<'\n';
}
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
6 ms |
640 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
6 ms |
640 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |