# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
570365 | 2022-05-29T10:45:41 Z | urd05 | Remittance (JOI19_remittance) | C++17 | 1 ms | 340 KB |
#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("No"); return 0; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 212 KB | Output is correct |
2 | Incorrect | 0 ms | 340 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 212 KB | Output is correct |
2 | Incorrect | 0 ms | 340 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 212 KB | Output is correct |
2 | Incorrect | 0 ms | 340 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |