Submission #618079
Source Code Expand
#include <cstdio> #include <cstdlib> #include <algorithm> #include <vector> #include <cstring> #define SIZE 100005 #define BT 1024*128*2 using namespace std; typedef long long int ll; struct segtree { ll add[BT];///f(i)-f(i+1)を持つ bool rm[BT]; int mum; void init(int n) { mum=1; while(mum<n) mum<<=1; for(int i=0;i<mum*2;i++) { add[i]=0; rm[i]=false; } } void pass(int k) { if(k*2+2<2*mum) { if(rm[k]) { rm[k]=false; add[k*2+1]=add[k*2+2]=0; rm[k*2+1]=rm[k*2+2]=true; } add[k*2+1]+=add[k]; add[k*2+2]+=add[k]; add[k]=0; } } void update(int a,int b,int k,int l,int r,ll v) { if(b<=l||r<=a) return; pass(k); if(a<=l&&r<=b) add[k]+=v; else { update(a,b,k*2+1,l,(l+r)/2,v); update(a,b,k*2+2,(l+r)/2,r,v); } } void update(int a,int b,ll v) { update(a,b,0,0,mum,v); } ll get(int x)//これは広義単調減少になるように調整される { int l=0,r=mum,k=0; while(l+1<r) { pass(k); int m=(l+r)/2; if(x<m) { r=m; k=k*2+1; } else { l=m; k=k*2+2; } } return add[k]; } int position()//初めてgetが0以下になるところを探す { int l=-1,r=mum; while(l+1<r) { int m=(l+r)/2; if(get(m)<=0) r=m; else l=m; } return r; } void fresh(int a,int b,int k,int l,int r)//範囲を0にする { if(b<=l||r<=a) return; pass(k); if(a<=l&&r<=b) { rm[k]=true; add[k]=0; } else { fresh(a,b,k*2+1,l,(l+r)/2); fresh(a,b,k*2+2,(l+r)/2,r); } } void fresh(int a,int b) { fresh(a,b,0,0,mum); } }; segtree seg; ll score0; vector <int> vec[SIZE]; int main() { int n,L; scanf("%d %d",&n,&L); seg.init(L+2); for(int i=0;i<n;i++) { int t,p; scanf("%d %d",&t,&p);t--; vec[t].push_back(p); } for(int i=0;i<SIZE;i++) { if(vec[i].empty()) continue; for(int j=0;j<vec[i].size();j++) { int p=vec[i][j]; score0+=p; if(p>0) seg.update(0,p,1); seg.update(p,seg.mum,-1); } int gt=seg.position(); if(gt<seg.mum) seg.fresh(gt,seg.mum); //for(int j=0;j<L;j++) printf("%lld ",seg.get(j));puts(""); } //printf("%lld\n",score0); int gt=seg.position(); ll ret=score0; for(int i=0;i<gt;i++) ret-=seg.get(i); printf("%lld\n",ret); return 0; }
Submission Info
Submission Time | |
---|---|
Task | E - 花火 |
User | yutaka1999 |
Language | C++ (GCC 4.9.2) |
Score | 160 |
Code Size | 2400 Byte |
Status | AC |
Exec Time | 473 ms |
Memory | 8532 KB |
Compile Error
./Main.cpp: In function ‘int main()’: ./Main.cpp:116:22: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] scanf("%d %d",&n,&L); ^ ./Main.cpp:121:23: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] scanf("%d %d",&t,&p);t--; ^
Judge Result
Set Name | Sample | Subtask1 | Subtask2 | ||||||
---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 30 / 30 | 130 / 130 | ||||||
Status |
|
|
|
Set Name | Test Cases |
---|---|
Sample | sample_01.txt, sample_02.txt, sample_03.txt |
Subtask1 | sample_01.txt, sample_02.txt, sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask1_26.txt, subtask1_27.txt, subtask1_28.txt, subtask1_29.txt, subtask1_30.txt, subtask1_31.txt, subtask1_32.txt, subtask1_33.txt, subtask1_34.txt, subtask1_35.txt, subtask1_36.txt, subtask1_37.txt, subtask1_38.txt, subtask1_39.txt, subtask1_40.txt, subtask1_41.txt, subtask1_42.txt |
Subtask2 | sample_01.txt, sample_02.txt, sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask1_26.txt, subtask1_27.txt, subtask1_28.txt, subtask1_29.txt, subtask1_30.txt, subtask1_31.txt, subtask1_32.txt, subtask1_33.txt, subtask1_34.txt, subtask1_35.txt, subtask1_36.txt, subtask1_37.txt, subtask1_38.txt, subtask1_39.txt, subtask1_40.txt, subtask1_41.txt, subtask1_42.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask2_13.txt, subtask2_14.txt, subtask2_15.txt, subtask2_16.txt, subtask2_17.txt, subtask2_18.txt, subtask2_19.txt, subtask2_20.txt, subtask2_21.txt, subtask2_22.txt, subtask2_23.txt, subtask2_24.txt, subtask2_25.txt, subtask2_26.txt, subtask2_27.txt, subtask2_28.txt, subtask2_29.txt, subtask2_30.txt, subtask2_31.txt, subtask2_32.txt, subtask2_33.txt, subtask2_34.txt, subtask2_35.txt, subtask2_36.txt, subtask2_37.txt, subtask2_38.txt, subtask2_39.txt, subtask2_40.txt, subtask2_41.txt, subtask2_42.txt, subtask2_43.txt, subtask2_44.txt, subtask2_45.txt, subtask2_46.txt, subtask2_47.txt, subtask2_48.txt, subtask2_49.txt, subtask2_50.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample_01.txt | AC | 31 ms | 3204 KB |
sample_02.txt | AC | 27 ms | 3228 KB |
sample_03.txt | AC | 27 ms | 3112 KB |
subtask1_01.txt | AC | 33 ms | 3120 KB |
subtask1_02.txt | AC | 32 ms | 3100 KB |
subtask1_03.txt | AC | 32 ms | 3228 KB |
subtask1_04.txt | AC | 31 ms | 3112 KB |
subtask1_05.txt | AC | 30 ms | 3100 KB |
subtask1_06.txt | AC | 28 ms | 3100 KB |
subtask1_07.txt | AC | 28 ms | 3100 KB |
subtask1_08.txt | AC | 32 ms | 3112 KB |
subtask1_09.txt | AC | 29 ms | 3100 KB |
subtask1_10.txt | AC | 33 ms | 3220 KB |
subtask1_11.txt | AC | 34 ms | 3228 KB |
subtask1_12.txt | AC | 34 ms | 3104 KB |
subtask1_13.txt | AC | 32 ms | 3100 KB |
subtask1_14.txt | AC | 32 ms | 3220 KB |
subtask1_15.txt | AC | 30 ms | 3224 KB |
subtask1_16.txt | AC | 29 ms | 3104 KB |
subtask1_17.txt | AC | 32 ms | 3100 KB |
subtask1_18.txt | AC | 34 ms | 3104 KB |
subtask1_19.txt | AC | 32 ms | 3108 KB |
subtask1_20.txt | AC | 35 ms | 3104 KB |
subtask1_21.txt | AC | 32 ms | 3220 KB |
subtask1_22.txt | AC | 32 ms | 3220 KB |
subtask1_23.txt | AC | 33 ms | 3228 KB |
subtask1_24.txt | AC | 34 ms | 3116 KB |
subtask1_25.txt | AC | 31 ms | 3104 KB |
subtask1_26.txt | AC | 30 ms | 3104 KB |
subtask1_27.txt | AC | 35 ms | 3228 KB |
subtask1_28.txt | AC | 32 ms | 3108 KB |
subtask1_29.txt | AC | 29 ms | 3116 KB |
subtask1_30.txt | AC | 30 ms | 3232 KB |
subtask1_31.txt | AC | 32 ms | 3236 KB |
subtask1_32.txt | AC | 31 ms | 3236 KB |
subtask1_33.txt | AC | 30 ms | 3224 KB |
subtask1_34.txt | AC | 31 ms | 3232 KB |
subtask1_35.txt | AC | 29 ms | 3160 KB |
subtask1_36.txt | AC | 31 ms | 3232 KB |
subtask1_37.txt | AC | 29 ms | 3032 KB |
subtask1_38.txt | AC | 29 ms | 3156 KB |
subtask1_39.txt | AC | 29 ms | 3228 KB |
subtask1_40.txt | AC | 29 ms | 3116 KB |
subtask1_41.txt | AC | 27 ms | 3112 KB |
subtask1_42.txt | AC | 29 ms | 3160 KB |
subtask2_01.txt | AC | 387 ms | 7340 KB |
subtask2_02.txt | AC | 387 ms | 7320 KB |
subtask2_03.txt | AC | 390 ms | 7324 KB |
subtask2_04.txt | AC | 390 ms | 7340 KB |
subtask2_05.txt | AC | 399 ms | 7324 KB |
subtask2_06.txt | AC | 308 ms | 6944 KB |
subtask2_07.txt | AC | 207 ms | 5280 KB |
subtask2_08.txt | AC | 138 ms | 4900 KB |
subtask2_09.txt | AC | 81 ms | 5036 KB |
subtask2_10.txt | AC | 86 ms | 5032 KB |
subtask2_11.txt | AC | 103 ms | 5024 KB |
subtask2_12.txt | AC | 135 ms | 5032 KB |
subtask2_13.txt | AC | 285 ms | 5416 KB |
subtask2_14.txt | AC | 117 ms | 6048 KB |
subtask2_15.txt | AC | 124 ms | 5920 KB |
subtask2_16.txt | AC | 129 ms | 5800 KB |
subtask2_17.txt | AC | 137 ms | 5920 KB |
subtask2_18.txt | AC | 194 ms | 6112 KB |
subtask2_19.txt | AC | 56 ms | 3728 KB |
subtask2_20.txt | AC | 58 ms | 3616 KB |
subtask2_21.txt | AC | 62 ms | 3492 KB |
subtask2_22.txt | AC | 68 ms | 3616 KB |
subtask2_23.txt | AC | 144 ms | 4000 KB |
subtask2_24.txt | AC | 332 ms | 7328 KB |
subtask2_25.txt | AC | 332 ms | 7328 KB |
subtask2_26.txt | AC | 336 ms | 7328 KB |
subtask2_27.txt | AC | 351 ms | 7324 KB |
subtask2_28.txt | AC | 384 ms | 7320 KB |
subtask2_29.txt | AC | 117 ms | 5796 KB |
subtask2_30.txt | AC | 127 ms | 5984 KB |
subtask2_31.txt | AC | 139 ms | 6040 KB |
subtask2_32.txt | AC | 356 ms | 7328 KB |
subtask2_33.txt | AC | 360 ms | 7324 KB |
subtask2_34.txt | AC | 135 ms | 5920 KB |
subtask2_35.txt | AC | 92 ms | 5020 KB |
subtask2_36.txt | AC | 114 ms | 5032 KB |
subtask2_37.txt | AC | 246 ms | 5408 KB |
subtask2_38.txt | AC | 438 ms | 8532 KB |
subtask2_39.txt | AC | 115 ms | 6044 KB |
subtask2_40.txt | AC | 53 ms | 3736 KB |
subtask2_41.txt | AC | 78 ms | 6176 KB |
subtask2_42.txt | AC | 473 ms | 8480 KB |
subtask2_43.txt | AC | 415 ms | 8484 KB |
subtask2_44.txt | AC | 124 ms | 6036 KB |
subtask2_45.txt | AC | 348 ms | 8476 KB |
subtask2_46.txt | AC | 76 ms | 6048 KB |
subtask2_47.txt | AC | 399 ms | 8484 KB |
subtask2_48.txt | AC | 33 ms | 5412 KB |
subtask2_49.txt | AC | 27 ms | 3108 KB |
subtask2_50.txt | AC | 31 ms | 5416 KB |