Submission #1186457

#TimeUsernameProblemLanguageResultExecution timeMemory
1186457simona1230Parrots (IOI11_parrots)C++20
81 / 100
2 ms840 KiB
#include "encoder.h"
#include "encoderlib.h"
#include <bits/stdc++.h>
using namespace std;

void encode(int N, int M[])
{
    int x=0,y=1;
    while(x*2<=N-1)y*=2,x++;

    int cnt=0;
    for(int i=0;i<8;i++)
        for(int j=0;j<N;j++)
            if(M[j]&(1<<i))cnt++;

    if(cnt>N*4)send(0),send(0);

    for(int i=0;i<8;i++)
        for(int j=0;j<N;j++)
            if(cnt>N*4&&!(M[j]&(1<<i)) ||
                cnt<=4*N&&(M[j]&(1<<i)))
                {
                    //cout<<(j<<3)+i<<" "<<j<<" "<<i<<endl;
                    send((j<<3)+i);
                }
}
#include "decoder.h"
#include "decoderlib.h"
#include <bits/stdc++.h>
using namespace std;

int a[128];
void decode(int N, int L, int X[])
{
    for(int i=0;i<N;i++)
        a[i]=0;
    int zero=0;
    for(int i=0;i<L;i++)
    {
        int b=(X[i]&1)+(X[i]&2)+(X[i]&4);
        if(X[i]==0)zero++;
        else a[X[i]>>3]+=(1<<b);
    }
    if(zero%2==1)a[0]+=1;

    if(zero>=2)
    {
        for(int i=0;i<N;i++)
            a[i]=255-a[i];
    }

    for(int i=0;i<N;i++)
        output(a[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...