Submission #135250

#TimeUsernameProblemLanguageResultExecution timeMemory
135250zoooma13Parrots (IOI11_parrots)C++14
98 / 100
23 ms1912 KiB
#include "bits/stdc++.h"
#include "encoder.h"
#include "encoderlib.h"
using namespace std;

void encode(int N, int M[])
{
    srand(465);
    vector <int> ord(N);
    iota(ord.begin() ,ord.end() ,0);
    random_shuffle(ord.begin() ,ord.end());
    vector <int> m(N);
    for(int i=0; i<N; i++)
        m[i] = M[ord[i]]^(rand()%256);

    vector <bool> bin(8*N ,0);
    for(int i=0; i<N; i++)
    for(int j=0; j<8; j++)
        bin[8*i+j] = m[i]&(1<<j);

    for(int i=0; i<bin.size(); i++)
        if(bin[i]){
            send(i & 255);
            if(i >= 256)
                send(i & 255);
        }
}
#include "bits/stdc++.h"
#include "decoder.h"
#include "decoderlib.h"
using namespace std;

void decode(int N, int L, int X[])
{
    srand(465);
    vector <int> ord(N) ,iord(N);
    iota(ord.begin() ,ord.end() ,0);
    random_shuffle(ord.begin() ,ord.end());
    for(int i=0; i<N; i++)
        iord[ord[i]] = i;

    vector <bool> bin(8*N ,0);
    for(int i=0; i<L; i++){
        if(count(X ,X+L ,X[i]) == 3)
            bin[256|X[i]] = 1 ,bin[X[i]] = 1;
        else if(count(X ,X+L ,X[i]) == 2)
            bin[256|X[i]] = 1;
        else if(count(X ,X+L ,X[i]) == 1)
            bin[X[i]] = 1;
    }

    vector <int> M(N);
    for(int i=0; i<N; i++){
        for(int j=0; j<8; j++)
            M[i] |= (1<<j)*bin[8*i+j];
        M[i] ^= rand()%256;
    }
    for(int i=0; i<N; i++)
        output(M[iord[i]]);
}

Compilation message (stderr)

encoder.cpp: In function 'void encode(int, int*)':
encoder.cpp:21:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=0; i<bin.size(); i++)
                  ~^~~~~~~~~~~
#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...