Submission #428216

#TimeUsernameProblemLanguageResultExecution timeMemory
428216AmylopectinRemittance (JOI19_remittance)C++14
0 / 100
1 ms304 KiB
#include <iostream> #include <stdio.h> using namespace std; const long long mxn = 4e6 + 10,mxi = 1e10 + 10; long long be[mxn] = {},af[mxn] = {},tw[mxn] = {}; long long fima(long long l,long long r) { if(l > r) return l; return r; } int main() { long long i,j,n,m,cma = 0,fr = 0,cva = 0,of = 0,ba,ru; scanf("%lld",&n); for(i=0; i<n; i++) { scanf("%lld %lld",&be[i],&af[i]); cma = fima(cma,be[i] - af[i]); } tw[0] = 1; for(i=1; i<40; i++) { tw[i] = tw[i-1] * 2; // if(tw[i] > cma) // { // break; // } } ba = n-1; for(i=0; i<n; i++) { cva += be[i] - af[i]; ru = ba; while((cva < 0 || cva%2 != 0) && ba > i) { ru = ba; while(((be[ru] - af[ru])%2 + 2) % 2 == 1 && ru > i+1) { ru --; } if(((be[ru] - af[ru])%2 + 2) % 2 == 1) { of = 1; break; } for(j=ru; j<ba; j++) { if((be[j] - af[j]) % 2 != 0) { of = 1; break; } be[j+1] += (be[j] - af[j]) / 2; be[j] = af[j]; } if(i + n - ba > 38 || of == 1) { of = 1; break; } if((be[ba] - af[ba]) % tw[i+n-ba] == 0) { cva += (be[ba] - af[ba]) / tw[i+n-ba]; ba = ru-1; } else { of = 1; break; } } if(ba == i || of == 1 || cva % 2 != 0) { break; } cva /= 2; } // for(i=n-1; i>=0; i--) // { // cva += be[i] - af[i]; // while(cva > 0 && fr < i) // { // if(n-i+fr > 35) // { // of = 1; // break; // } // cva += (be[fr] - af[fr]) * tw[n-i + fr]; // fr ++; // } // if(fr == i || of == 1) // { // break; // } // cva *= 2; // if(cva > mxi) // { // of = 1; // break; // } // } if(cva == 0 && of == 0) { printf("Yes\n"); } else { printf("No\n"); } return 0; }

Compilation message (stderr)

remittance.cpp: In function 'int main()':
remittance.cpp:14:21: warning: unused variable 'm' [-Wunused-variable]
   14 |     long long i,j,n,m,cma = 0,fr = 0,cva = 0,of = 0,ba,ru;
      |                     ^
remittance.cpp:14:31: warning: unused variable 'fr' [-Wunused-variable]
   14 |     long long i,j,n,m,cma = 0,fr = 0,cva = 0,of = 0,ba,ru;
      |                               ^~
remittance.cpp:15:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   15 |     scanf("%lld",&n);
      |     ~~~~~^~~~~~~~~~~
remittance.cpp:18:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   18 |         scanf("%lld %lld",&be[i],&af[i]);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...