답안 #700974

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
700974 2023-02-19T14:34:09 Z urosk Candies (JOI18_candies) C++14
100 / 100
570 ms 30464 KB
#define here cerr<<"===========================================\n"
#define dbg(x) cerr<<#x<<": "<<x<<endl;
#include "bits/stdc++.h"
//#include <ext/pb_ds/tree_policy.hpp>
//#include <ext/pb_ds/assoc_container.hpp>
#define ld double
#define ll long long
#define llinf 100000000000000000LL // 10^17
#define pb push_back
#define popb pop_back
#define fi first
#define sc second
#define endl '\n'
#define pll pair<ll,ll>
#define pld pair<ld,ld>
#define sz(a) (ll)(a.size())
#define all(a) a.begin(),a.end()
#define ceri(a,l,r) {cerr<<#a<<": ";for(ll i_ = l;i_<=r;i_++) cerr<<a[i_]<< " ";cerr<<endl;}
#define cer(a) {cerr<<#a<<": ";for(ll x_ : a) cerr<<x_<< " ";cerr<<endl;}

#define daj_mi_malo_vremena ios_base::sync_with_stdio(false);cerr.tie(0);cout.tie(0);cin.tie(0);

using namespace std;
#define maxn 200005
ll n;
ll a[maxn];
bool cmp(pll x,pll y){return x.fi>y.fi;}
multiset<pll> st;
multiset<pll> s;
void tc(){
    cin >> n;
    for(ll i = 1;i<=n;i++) cin >> a[i];
    a[0] = a[n+1] = -llinf;
    for(ll i = 0;i<=n+1;i++){
        s.insert({-a[i],i});
        st.insert({i,-a[i]});
    }
    ll cnt = 0,ans = 0;
    while(cnt<(n+1)/2){
        pll p = *s.begin();
        ll i = p.sc,x = p.fi;
        ans-=x;
        cout<<ans<<endl;
        x = -llinf;
        auto it = st.lower_bound({i,x});
        pll a,b,c;
        if(it!=st.end()){
            b = *it;
            st.erase(it);
            s.erase(s.find({b.sc,b.fi}));
        }
        it = st.lower_bound({i,x});
        if(it!=st.end()){
            c = *it;
            st.erase(it);
            s.erase(s.find({c.sc,c.fi}));
        }
        it = st.lower_bound({i,x});
        if(it!=st.begin()){
            it--;
            a = *it;
            st.erase(it);
            s.erase(s.find({a.sc,a.fi}));
        }
        pll d;
        d.fi = a.sc+c.sc-b.sc;
        d.sc = b.fi;
        s.insert(d);
        st.insert({d.sc,d.fi});
        cnt++;
    }
}
int main(){
	daj_mi_malo_vremena
    int t; t = 1;
    while(t--){
        tc();
    }
	return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 596 KB Output is correct
2 Correct 2 ms 596 KB Output is correct
3 Correct 2 ms 596 KB Output is correct
4 Correct 2 ms 596 KB Output is correct
5 Correct 2 ms 596 KB Output is correct
6 Correct 2 ms 596 KB Output is correct
7 Correct 2 ms 596 KB Output is correct
8 Correct 2 ms 596 KB Output is correct
9 Correct 2 ms 596 KB Output is correct
10 Correct 2 ms 596 KB Output is correct
11 Correct 2 ms 592 KB Output is correct
12 Correct 3 ms 596 KB Output is correct
13 Correct 2 ms 596 KB Output is correct
14 Correct 2 ms 600 KB Output is correct
15 Correct 2 ms 548 KB Output is correct
16 Correct 2 ms 592 KB Output is correct
17 Correct 2 ms 592 KB Output is correct
18 Correct 2 ms 596 KB Output is correct
19 Correct 2 ms 608 KB Output is correct
20 Correct 2 ms 612 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 596 KB Output is correct
2 Correct 2 ms 596 KB Output is correct
3 Correct 2 ms 596 KB Output is correct
4 Correct 2 ms 596 KB Output is correct
5 Correct 2 ms 596 KB Output is correct
6 Correct 2 ms 596 KB Output is correct
7 Correct 2 ms 596 KB Output is correct
8 Correct 2 ms 596 KB Output is correct
9 Correct 2 ms 596 KB Output is correct
10 Correct 2 ms 596 KB Output is correct
11 Correct 2 ms 592 KB Output is correct
12 Correct 3 ms 596 KB Output is correct
13 Correct 2 ms 596 KB Output is correct
14 Correct 2 ms 600 KB Output is correct
15 Correct 2 ms 548 KB Output is correct
16 Correct 2 ms 592 KB Output is correct
17 Correct 2 ms 592 KB Output is correct
18 Correct 2 ms 596 KB Output is correct
19 Correct 2 ms 608 KB Output is correct
20 Correct 2 ms 612 KB Output is correct
21 Correct 524 ms 30328 KB Output is correct
22 Correct 528 ms 30352 KB Output is correct
23 Correct 542 ms 30376 KB Output is correct
24 Correct 224 ms 30088 KB Output is correct
25 Correct 232 ms 30104 KB Output is correct
26 Correct 228 ms 30192 KB Output is correct
27 Correct 224 ms 30328 KB Output is correct
28 Correct 226 ms 30344 KB Output is correct
29 Correct 226 ms 30272 KB Output is correct
30 Correct 244 ms 30380 KB Output is correct
31 Correct 231 ms 30280 KB Output is correct
32 Correct 238 ms 30408 KB Output is correct
33 Correct 323 ms 30032 KB Output is correct
34 Correct 339 ms 30080 KB Output is correct
35 Correct 344 ms 30108 KB Output is correct
36 Correct 547 ms 30328 KB Output is correct
37 Correct 535 ms 30296 KB Output is correct
38 Correct 570 ms 30304 KB Output is correct
39 Correct 224 ms 30112 KB Output is correct
40 Correct 271 ms 30096 KB Output is correct
41 Correct 231 ms 30268 KB Output is correct
42 Correct 237 ms 30284 KB Output is correct
43 Correct 228 ms 30464 KB Output is correct
44 Correct 234 ms 30364 KB Output is correct
45 Correct 245 ms 30428 KB Output is correct
46 Correct 256 ms 30372 KB Output is correct
47 Correct 246 ms 30288 KB Output is correct
48 Correct 356 ms 30072 KB Output is correct
49 Correct 367 ms 30112 KB Output is correct
50 Correct 362 ms 30048 KB Output is correct