Submission #65275429
Source Code Expand
#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
using namespace std;
typedef long long ll;
typedef pair<ll,ll> pll;
mt19937 mt(time(NULL));
struct node{
int val,sz,prior;
ll sum[2];
node*l,*r;
node(){
val=sum[0]=sum[1]=0;
sz=0;
prior=mt()>>1;
l=r=nullptr;
}
node(int x){
val=sum[0]=x;
sum[1]=0;
sz=1;
prior=mt()>>1;
l=r=nullptr;
}
};
typedef node* pnode;
int sz(pnode&p){return p?p->sz:0;}
pll sum(pnode&p){return p?pll{p->sum[0],p->sum[1]}:pll{0,0};}
void calc(pnode&p){
if(!p)return;
p->sz=sz(p->l)+sz(p->r)+1;
auto suml=sum(p->l);
auto sumr=sum(p->r);
if((sz(p->l)+1)&1)swap(sumr.first,sumr.second);
p->sum[0]=suml.first+sumr.first;
p->sum[1]=suml.second+sumr.second;
p->sum[sz(p->l)&1]+=p->val;
}
void split(pnode p,int key,pnode&l,pnode&r){// <=key, >key
if(!p)return void(l=r=0);
if(key>=(p->val))split(p->r,key,p->r,r),l=p;
else split(p->l,key,l,p->l),r=p;
calc(p);
}
void Merge(pnode&p,pnode l,pnode r){
if(!l||!r)p=l?l:r;
else if(l->prior>r->prior)Merge(l->r,l->r,r),p=l;
else Merge(r->l,l,r->l),p=r;
calc(p);
}
void Insert(pnode&p,int val){
pnode l,r;
split(p,val,l,r);
Merge(p,l,new node(val));
Merge(p,p,r);
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
pnode root=0;
int q;
cin>>q;
ll lst=0;
while(q--){
int y;
cin>>y;
int x=(y+lst)%(1000000000) +1;
Insert(root,x);
cout<<(lst=(root->sum[0]))<<"\n";
}
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | G - Odd Position Sum Query |
| User | AbdelmagedNour |
| Language | C++ 20 (gcc 12.2) |
| Score | 600 |
| Code Size | 1506 Byte |
| Status | AC |
| Exec Time | 647 ms |
| Memory | 23864 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 600 / 600 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_sample_00.txt, 00_sample_01.txt |
| All | 00_sample_00.txt, 00_sample_01.txt, 01_test_00.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt, 01_test_24.txt, 01_test_25.txt, 01_test_26.txt, 01_test_27.txt, 01_test_28.txt, 01_test_29.txt, 01_test_30.txt, 01_test_31.txt, 01_test_32.txt, 01_test_33.txt, 01_test_34.txt, 01_test_35.txt, 01_test_36.txt, 01_test_37.txt, 01_test_38.txt, 01_test_39.txt, 01_test_40.txt, 01_test_41.txt, 01_test_42.txt, 01_test_43.txt, 01_test_44.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_00.txt | AC | 2 ms | 3604 KiB |
| 00_sample_01.txt | AC | 1 ms | 3724 KiB |
| 01_test_00.txt | AC | 1 ms | 3528 KiB |
| 01_test_01.txt | AC | 1 ms | 3596 KiB |
| 01_test_02.txt | AC | 2 ms | 3528 KiB |
| 01_test_03.txt | AC | 1 ms | 3600 KiB |
| 01_test_04.txt | AC | 2 ms | 3476 KiB |
| 01_test_05.txt | AC | 2 ms | 3636 KiB |
| 01_test_06.txt | AC | 6 ms | 3920 KiB |
| 01_test_07.txt | AC | 3 ms | 3660 KiB |
| 01_test_08.txt | AC | 17 ms | 4892 KiB |
| 01_test_09.txt | AC | 145 ms | 9796 KiB |
| 01_test_10.txt | AC | 328 ms | 15436 KiB |
| 01_test_11.txt | AC | 289 ms | 13880 KiB |
| 01_test_12.txt | AC | 613 ms | 23632 KiB |
| 01_test_13.txt | AC | 617 ms | 23632 KiB |
| 01_test_14.txt | AC | 75 ms | 15628 KiB |
| 01_test_15.txt | AC | 123 ms | 23680 KiB |
| 01_test_16.txt | AC | 180 ms | 17068 KiB |
| 01_test_17.txt | AC | 250 ms | 23636 KiB |
| 01_test_18.txt | AC | 284 ms | 21520 KiB |
| 01_test_19.txt | AC | 317 ms | 23732 KiB |
| 01_test_20.txt | AC | 232 ms | 14964 KiB |
| 01_test_21.txt | AC | 448 ms | 23720 KiB |
| 01_test_22.txt | AC | 526 ms | 20812 KiB |
| 01_test_23.txt | AC | 621 ms | 23676 KiB |
| 01_test_24.txt | AC | 448 ms | 18320 KiB |
| 01_test_25.txt | AC | 642 ms | 23644 KiB |
| 01_test_26.txt | AC | 644 ms | 23748 KiB |
| 01_test_27.txt | AC | 636 ms | 23640 KiB |
| 01_test_28.txt | AC | 638 ms | 23696 KiB |
| 01_test_29.txt | AC | 617 ms | 23660 KiB |
| 01_test_30.txt | AC | 569 ms | 23648 KiB |
| 01_test_31.txt | AC | 593 ms | 23688 KiB |
| 01_test_32.txt | AC | 644 ms | 23744 KiB |
| 01_test_33.txt | AC | 647 ms | 23004 KiB |
| 01_test_34.txt | AC | 118 ms | 23516 KiB |
| 01_test_35.txt | AC | 117 ms | 23752 KiB |
| 01_test_36.txt | AC | 119 ms | 23636 KiB |
| 01_test_37.txt | AC | 117 ms | 23720 KiB |
| 01_test_38.txt | AC | 148 ms | 23524 KiB |
| 01_test_39.txt | AC | 144 ms | 23736 KiB |
| 01_test_40.txt | AC | 184 ms | 23520 KiB |
| 01_test_41.txt | AC | 165 ms | 23748 KiB |
| 01_test_42.txt | AC | 2 ms | 3596 KiB |
| 01_test_43.txt | AC | 102 ms | 22356 KiB |
| 01_test_44.txt | AC | 106 ms | 23864 KiB |