Submission #944817

#TimeUsernameProblemLanguageResultExecution timeMemory
944817PenguinsAreCuteMechanical Doll (IOI18_doll)C++17
100 / 100
82 ms13824 KiB
// why is there always this nvim thing where all numbers increase by 1 if you accidentally press sth #include "doll.h" #include <bits/stdc++.h> using namespace std; #pragma GCC optimize("O3") #define REP(i,a,b) for(int i=(a);i<(b);i++) #define RREP(i,a,b) for(int i=(a)-1;i>=(b);i--) #define pb emplace_back int rev(int bits, int n) { int ans = 0; REP(i,0,bits) if(n&(1<<i)) ans |= (1<<(bits-1-i)); return ans; } #ifdef DEBUG #define state printf #define RTEfind printf("Line %d\n",__LINE__) #else #define state(...) 69 #define RTEfind 42 #endif void create_circuit(int M, std::vector<int> A) { state("create circuit called\n"); A.pb(0); RTEfind; int N = A.size(); RTEfind; vector<int> C; RTEfind; REP(i,0,M+1) C.pb(-1); RTEfind; int log = 0; while((1<<log)<N) log++; RTEfind; int no[(2<<log)]; RTEfind; REP(i,1<<log,2<<log) no[i]=-(i+N<(2<<log)); RTEfind; RREP(i,1<<log,1) no[i]=-(no[i<<1]+no[i<<1|1]==-2); RTEfind; int cnt = 0; RTEfind; REP(i,1,1<<log) if(no[i]!=-1) no[i]=cnt++; REP(i,1,1<<log) state("no[%d]=%d\n",i,no[i]); RTEfind; vector<int> X, Y; X.resize(cnt); Y.resize(cnt); RTEfind; REP(i,1,1<<log) if(no[i]!=-1) X[no[i]]=(no[i<<1]==-1?-1:-no[i<<1]-1), Y[no[i]]=(no[i<<1|1]==-1?-1:-no[i<<1|1]-1); RTEfind; int cur = -1; RTEfind; REP(i,0,N) { RTEfind; do {cur++;} while(rev(log,cur)+N<(1<<log)); RTEfind; int hi = rev(log, cur) | (1<<log); state("cur=%d,log=%d,hi=%d\n",cur,log,hi); RTEfind; if(hi&1) Y[no[hi>>1]]=A[i]; else X[no[hi>>1]]=A[i]; RTEfind; } RTEfind; answer(C,X,Y); }

Compilation message (stderr)

doll.cpp: In function 'void create_circuit(int, std::vector<int>)':
doll.cpp:18:21: warning: statement has no effect [-Wunused-value]
   18 |  #define state(...) 69
      |                     ^~
doll.cpp:22:2: note: in expansion of macro 'state'
   22 |  state("create circuit called\n");
      |  ^~~~~
doll.cpp:19:18: warning: statement has no effect [-Wunused-value]
   19 |  #define RTEfind 42
      |                  ^~
doll.cpp:24:2: note: in expansion of macro 'RTEfind'
   24 |  RTEfind;
      |  ^~~~~~~
doll.cpp:19:18: warning: statement has no effect [-Wunused-value]
   19 |  #define RTEfind 42
      |                  ^~
doll.cpp:26:2: note: in expansion of macro 'RTEfind'
   26 |  RTEfind;
      |  ^~~~~~~
doll.cpp:19:18: warning: statement has no effect [-Wunused-value]
   19 |  #define RTEfind 42
      |                  ^~
doll.cpp:28:2: note: in expansion of macro 'RTEfind'
   28 |  RTEfind;
      |  ^~~~~~~
doll.cpp:19:18: warning: statement has no effect [-Wunused-value]
   19 |  #define RTEfind 42
      |                  ^~
doll.cpp:30:2: note: in expansion of macro 'RTEfind'
   30 |  RTEfind;
      |  ^~~~~~~
doll.cpp:19:18: warning: statement has no effect [-Wunused-value]
   19 |  #define RTEfind 42
      |                  ^~
doll.cpp:32:2: note: in expansion of macro 'RTEfind'
   32 |  RTEfind;
      |  ^~~~~~~
doll.cpp:19:18: warning: statement has no effect [-Wunused-value]
   19 |  #define RTEfind 42
      |                  ^~
doll.cpp:34:2: note: in expansion of macro 'RTEfind'
   34 |  RTEfind;
      |  ^~~~~~~
doll.cpp:19:18: warning: statement has no effect [-Wunused-value]
   19 |  #define RTEfind 42
      |                  ^~
doll.cpp:36:2: note: in expansion of macro 'RTEfind'
   36 |  RTEfind;
      |  ^~~~~~~
doll.cpp:19:18: warning: statement has no effect [-Wunused-value]
   19 |  #define RTEfind 42
      |                  ^~
doll.cpp:38:2: note: in expansion of macro 'RTEfind'
   38 |  RTEfind;
      |  ^~~~~~~
doll.cpp:19:18: warning: statement has no effect [-Wunused-value]
   19 |  #define RTEfind 42
      |                  ^~
doll.cpp:40:2: note: in expansion of macro 'RTEfind'
   40 |  RTEfind;
      |  ^~~~~~~
doll.cpp:18:21: warning: statement has no effect [-Wunused-value]
   18 |  #define state(...) 69
      |                     ^~
doll.cpp:42:18: note: in expansion of macro 'state'
   42 |  REP(i,1,1<<log) state("no[%d]=%d\n",i,no[i]);
      |                  ^~~~~
doll.cpp:19:18: warning: statement has no effect [-Wunused-value]
   19 |  #define RTEfind 42
      |                  ^~
doll.cpp:43:2: note: in expansion of macro 'RTEfind'
   43 |  RTEfind;
      |  ^~~~~~~
doll.cpp:19:18: warning: statement has no effect [-Wunused-value]
   19 |  #define RTEfind 42
      |                  ^~
doll.cpp:45:2: note: in expansion of macro 'RTEfind'
   45 |  RTEfind;
      |  ^~~~~~~
doll.cpp:19:18: warning: statement has no effect [-Wunused-value]
   19 |  #define RTEfind 42
      |                  ^~
doll.cpp:47:2: note: in expansion of macro 'RTEfind'
   47 |  RTEfind;
      |  ^~~~~~~
doll.cpp:19:18: warning: statement has no effect [-Wunused-value]
   19 |  #define RTEfind 42
      |                  ^~
doll.cpp:49:2: note: in expansion of macro 'RTEfind'
   49 |  RTEfind;
      |  ^~~~~~~
doll.cpp:19:18: warning: statement has no effect [-Wunused-value]
   19 |  #define RTEfind 42
      |                  ^~
doll.cpp:51:2: note: in expansion of macro 'RTEfind'
   51 |  RTEfind;
      |  ^~~~~~~
doll.cpp:19:18: warning: statement has no effect [-Wunused-value]
   19 |  #define RTEfind 42
      |                  ^~
doll.cpp:53:3: note: in expansion of macro 'RTEfind'
   53 |   RTEfind;
      |   ^~~~~~~
doll.cpp:18:21: warning: statement has no effect [-Wunused-value]
   18 |  #define state(...) 69
      |                     ^~
doll.cpp:55:3: note: in expansion of macro 'state'
   55 |   state("cur=%d,log=%d,hi=%d\n",cur,log,hi);
      |   ^~~~~
doll.cpp:19:18: warning: statement has no effect [-Wunused-value]
   19 |  #define RTEfind 42
      |                  ^~
doll.cpp:56:3: note: in expansion of macro 'RTEfind'
   56 |   RTEfind;
      |   ^~~~~~~
doll.cpp:19:18: warning: statement has no effect [-Wunused-value]
   19 |  #define RTEfind 42
      |                  ^~
doll.cpp:59:3: note: in expansion of macro 'RTEfind'
   59 |   RTEfind;
      |   ^~~~~~~
doll.cpp:19:18: warning: statement has no effect [-Wunused-value]
   19 |  #define RTEfind 42
      |                  ^~
doll.cpp:61:2: note: in expansion of macro 'RTEfind'
   61 |  RTEfind;
      |  ^~~~~~~
#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...