제출 #253177

#제출 시각아이디문제언어결과실행 시간메모리
253177kshitij_sodani송금 (JOI19_remittance)C++14
0 / 100
0 ms384 KiB
#include <bits/stdc++.h> using namespace std; typedef long long llo; #define mp make_pair #define pb push_back #define a first #define b second llo n; llo it[1000001]; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cin>>n; set<pair<int,int>> cur; for(llo i=0;i<n;i++){ llo aa,bb; cin>>aa>>bb; it[i]=aa-bb; cur.insert({-it[i],i}); } for(int i=0;i<40*n;i++){ pair<int,int> no=*cur.begin(); no.a*=-1; if(no.a<=1){ break; } cur.erase(cur.begin()); int x=it[no.b]/2; cur.erase({-it[(no.b+1)%n],(no.b+1)%n}); it[(no.b+1)%n]+=x; cur.insert({-it[(no.b+1)%n],(no.b+1)%n}); it[no.b]-=2*x; cur.insert({-it[no.b],no.b}); } /*for(llo i=0;i<40;i++){ for(llo j=0;j<n;j++){ if(it[j]<=1){ continue; } llo ind; for(llo k=29;k>=1;k--){ if(((llo)1<<k)&it[j]){ ind=k; break; } } it[j]-=((llo)1<<ind); it[(j+1)%n]+=((llo)1<<ind)/2; } }*/ llo st=0; for(llo i=0;i<n;i++){ if(it[i]!=0){ st=1; } } if(st==0){ cout<<"Yes"<<endl; } else{ cout<<"No"<<endl; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...