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
AC × 2
AC × 47
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