Submission #573375

#TimeUsernameProblemLanguageResultExecution timeMemory
573375TimDeeParrots (IOI11_parrots)C++14
98 / 100
11 ms1368 KiB
#include "encoder.h" #include "encoderlib.h" #define forn(i,n) for (int i=0; i<n; i++) #include <vector> void encode(int n, int message[]) { forn(i,n) { int x=message[i]; int add=i*4; std::vector<int> v; while (x) { v.push_back(x%4); x/=4; } for (int i=0; i<v.size(); i++) { if (v[i]!=3) forn(j,v[i]) send(add+i); else { int j=i+1; while (j<v.size() && v[i]==v[j]) j++; forn(k,2+j-i) send(add+i); i=j-1; } } } }
#include "decoder.h" #include "decoderlib.h" #define forn(i,n) for (int i=0; i<n; i++) struct node { int fcnt=0,scnt=0,tcnt=0,pcnt=0; }; #include <vector> void decode(int N, int L, int message[]) { int a[N]; node v[N]; forn(i,N) a[i]=0; forn(i,L) { int x=message[i]; int j=x/4; int k=x%4; if (k==0) { v[j].fcnt++; } else if (k==1) { v[j].scnt++; } else if (k==2) { v[j].tcnt++; } else { v[j].pcnt++; } } forn(i,N) { int x=v[i].fcnt, y=v[i].scnt, z=v[i].tcnt, d=v[i].pcnt; std::vector<int> vec; vec.push_back(x); vec.push_back(y); vec.push_back(z); vec.push_back(d); for (int j=0; j<4; j++) { if (vec[j]<3) { a[i]+=vec[j]*(1<<(2*j)); } else { int h=vec[j]; int s=j; while (h>=3) { a[i]+=3*(1<<(2*s)); s++; h--; } } } output(a[i]); } }

Compilation message (stderr)

encoder.cpp: In function 'void encode(int, int*)':
encoder.cpp:15:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   15 |         for (int i=0; i<v.size(); i++) {
      |                       ~^~~~~~~~~
encoder.cpp:19:25: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   19 |                 while (j<v.size() && v[i]==v[j]) j++;
      |                        ~^~~~~~~~~
#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...