Submission #570366

#TimeUsernameProblemLanguageResultExecution timeMemory
570366urd05Remittance (JOI19_remittance)C++17
0 / 100
1 ms340 KiB
#include <bits/stdc++.h> using namespace std; int n; long long c[1000001]; long long arr[1000001]; //비트 저장 long long value[1000001]; long long money[1000001]; bool vis[1000001]; int main() { scanf("%d",&n); for(int i=1;i<=n;i++) { int a,b; scanf("%d %d",&a,&b); money[i]=a; c[i]=b-a; } arr[0]=(c[1]&1); long long val=(c[1]>>1); for(int i=1;i<n;i++) { val+=c[i+1]; arr[i]=(val&1); val=(val>>1); } long long mok=val; long long pr=val; arr[0]+=val; while (pr!=0) { long long now=0; for(int i=0;i<n;i++) { if (i==n-1) { now+=(arr[i]>>1); } else { arr[i+1]+=(arr[i]>>1); } arr[i]=(arr[i]&1); } pr=now; mok+=now; arr[0]+=now; } bool flag=true; for(int i=1;i<n;i++) { if (arr[i]!=arr[i-1]) { flag=false; break; } } if (!flag) { printf("No"); return 0; } if (arr[0]==1) { mok++; } if (mok>0) { printf("No"); return 0; } long long x=-mok; value[n]=x; for(int i=n-1;i>0;i--) { x=2*x+c[i]; value[i]=x; if (x<0) { printf("No"); return 0; } } printf("Yes"); return 0; }

Compilation message (stderr)

remittance.cpp: In function 'int main()':
remittance.cpp:12:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   12 |     scanf("%d",&n);
      |     ~~~~~^~~~~~~~~
remittance.cpp:15:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   15 |         scanf("%d %d",&a,&b);
      |         ~~~~~^~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...