Submission #351933

#TimeUsernameProblemLanguageResultExecution timeMemory
351933juggernautParrots (IOI11_parrots)C++14
0 / 100
48 ms1556 KiB
#include"encoder.h"
#include"encoderlib.h"
#include<bits/stdc++.h>
using namespace std;
int counter[256];
void encode(int n,int a[]){
    vector<int>best(n*15,0);
    int sig;
    for(int xr=0;xr<255;xr++){
        vector<int>vec;
        for(int i=0;i<n;i++){
            int x=a[i]^xr;
            while(x>63)vec.push_back((i<<2)|3),x-=64;
            while(x>15)vec.push_back((i<<2)|2),x-=16;
            while(x>3)vec.push_back((i<<2)|1),x-=4;
            while(x>0)vec.push_back((i<<2)|0),x-=1;
        }
        if(vec.size()<best.size())best=vec,sig=xr;
    }
    int mx=0;
    for(auto to:best){
        counter[to]++;
        mx=max(mx,counter[to]);
        send(to);
    }
    for(int i=0;i<=mx;i++)send(sig);
}
#include"decoder.h"
#include"decoderlib.h"
#include<bits/stdc++.h>
using namespace std;
int res[64],counter[256];
void decode(int n,int m,int a[]){
    for(int i=0;i<n;i++)res[i]=0;
    int mx=0,val;
    for(int i=0;i<m;i++)
        counter[a[i]]++;
    for(int i=0;i<256;i++)if(counter[i]>mx)mx=counter[i],val=i;
    for(int i=0;i<m;i++){
        if(a[i]==val)continue;
        a[i]^=val;
        int data=a[i]&3;
        if(data==0)res[a[i]>>2]+=1;
        if(data==1)res[a[i]>>2]+=4;
        if(data==2)res[a[i]>>2]+=16;
        if(data==3)res[a[i]>>2]+=64;
    }
    for(int i=0;i<n;i++)output(res[i]);
}

Compilation message (stderr)

encoder.cpp: In function 'void encode(int, int*)':
encoder.cpp:26:31: warning: 'sig' may be used uninitialized in this function [-Wmaybe-uninitialized]
   26 |     for(int i=0;i<=mx;i++)send(sig);
      |                           ~~~~^~~~~

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