Submission #1315128

#TimeUsernameProblemLanguageResultExecution timeMemory
1315128PetrixParrots (IOI11_parrots)C++20
98 / 100
5 ms824 KiB
#include "encoder.h" #include "encoderlib.h" #include <iostream> #include <vector> using namespace std; void encode(int n,int m[]) { vector<int> unu,zero; int i,j,rasp,aux; for(i=0;i<n;i++){ for(j=0;j<8;j+=2){ rasp=0; if(m[i]&(1<<j)) { rasp|=1; } if(m[i]&(1<<(j+1))){ rasp|=2; } aux=3-rasp; while(rasp){rasp--; unu.push_back((i*8+j)/2); } while(aux){aux--; zero.push_back((i*8+j)/2); } } } if(unu.size()<zero.size()){ for(auto it:unu) { send(it); } }else{ for(auto it:zero) { send(it); } for(i=0;i<4;i++) { send(255); } } }
#include "decoder.h" #include "decoderlib.h" #include <vector> #include <iostream> using namespace std; void decode(int n,int l,int x[]) { vector<int> frv(256), m(n,0); int i,j,poz,bit,stg=0; for(i=0;i<l;i++){ frv[x[i]]++; } if(frv[255]>=4){ frv[255]-=4; stg=1; } for(i=0;i<256;i++){ j=2*i;poz=j/8;bit=j%8; if(frv[i]&1){ m[poz]|=(1<<bit); } if(frv[i]&2){ m[poz]|=(1<<(bit+1)); } } if(stg){ for(i=0;i<n;i++){ for(j=0;j<8;j++){ m[i]^=(1<<j); } } } for(auto it:m) { output(it); } }
#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...