Submission #351984

#TimeUsernameProblemLanguageResultExecution timeMemory
351984kylych03Parrots (IOI11_parrots)C++14
99 / 100
47 ms1676 KiB
#include "encoder.h" #include "encoderlib.h" #include <bits/stdc++.h> using namespace std; void encode(int N, int M[]) { int i, xr, rs = 1e9; for(int t = 0 ; t < 256; t++){ int cnt = 0; for(i = 0 ; i < N; i++){ int f = (M[i] ^ t); for(int j= 0 ; j < 8 ;j++){ if(( f>>j )& 1){ if(j%2==1) cnt++; cnt++; } } } if(cnt < rs){ rs = cnt; xr = t; } } send(xr); send(xr); send(xr); send(xr); for(i = 0 ; i < N; i++) M[i]=( M[i] ^ xr); for(i=0; i<N; i++){ int packet=(i<<2); for(int j= 0 ; j < 8 ;j++){ if(( M[i]>>j )&1){ if(j%2==1) send(packet+j/2); send(packet+j/2); } } } //cout << endl<<" encoder - "<<xr << endl; for(i = 0 ; i < N; i++) M[i]=( M[i] ^ xr); }
#include "decoder.h" #include "decoderlib.h" #include <bits/stdc++.h> using namespace std; int res[256], f[256], cnt[256]; void decode(int N, int L, int X[]) { int i, xrr; for(i=0; i<256; i++){ cnt[i]=0; res[i]=0; f[i]=0; } for(int i = 0; i < L; i++){ cnt[X[i]]++; } for(i=0; i<256; i++){ if(cnt[i] > 3){ xrr = i; cnt[i] -= 4; break; } } for(i=0; i < L; i++){ if(!cnt[X[i]]) continue; cnt[X[i]]--; res[X[i]>>2]+=( 1<<((X[i]&3)*2)); } for(i=0; i<N; i++) res[i]^=xrr; for(i=0; i<N; i++) { //cout << (res[i] ) << " "; output(res[i] ); } } /* 50 171 119 223 130 116 138 204 99 236 198 56 135 116 106 66 64 204 242 114 11 194 251 213 251 67 145 200 57 90 108 90 61 86 69 158 229 11 141 37 7 248 77 5 85 144 17 53 159 54 7 */

Compilation message (stderr)

encoder.cpp: In function 'void encode(int, int*)':
encoder.cpp:48:17: warning: 'xr' may be used uninitialized in this function [-Wmaybe-uninitialized]
   48 |     M[i]=( M[i] ^ xr);
      |          ~~~~~~~^~~~~

decoder.cpp: In function 'void decode(int, int, int*)':
decoder.cpp:31:9: warning: 'xrr' may be used uninitialized in this function [-Wmaybe-uninitialized]
   31 |   res[i]^=xrr;
      |   ~~~~~~^~~~~
#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...