Submission #290815

#TimeUsernameProblemLanguageResultExecution timeMemory
290815gs14004CATS (NOI14_cats)C++17
12 / 25
1584 ms40056 KiB
#include <cstdio> #include <cstring> using lint = long long; struct cat_stack{ int stack[5000005], sz; int top(){ if(sz == 0) return 0; return stack[sz-1]; } void pop(){ if(sz != 0) sz--; } void push(int x){ stack[sz++] = x; } }s1; int main(){ int q; scanf("%d",&q); while (q--) { lint x, l, n; scanf("%lld %lld %lld",&x,&l,&n); x--; if(l / (2 * n + 1) <= 61){ lint Q = l / (2 * n) + 1; x %= (1ll << (Q + 1)); } int s2 = 0; s1.sz = 0; int g = 0; while (x>=0) { s2 = s1.top() ^ g; s1.pop(); g ^= 1; if(s2 > l){ x--; // printf("%d,", s2); if(x < 0){ printf("%d\n",s2); break; } } else{ s2 += 2*n; s1.push(s2^g); s1.push(s2^g); } } } }

Compilation message (stderr)

cats.cpp: In function 'int main()':
cats.cpp:21:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   21 |  scanf("%d",&q);
      |  ~~~~~^~~~~~~~~
cats.cpp:24:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   24 |   scanf("%lld %lld %lld",&x,&l,&n);
      |   ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...