Submission #1140456

#TimeUsernameProblemLanguageResultExecution timeMemory
1140456sopaconkParrots (IOI11_parrots)C++20
81 / 100
5 ms840 KiB
#include "encoder.h"
#include "encoderlib.h"
#include <bits/stdc++.h>
using namespace std;
using lli=long long int;
#define pb push_back
#define deb(x) cout<<#x<<": "<<x<<endl;

void encode(int N, int M[])
{
  vector<int> ans1;
  vector<int> ans2;
  ans2.pb(255);
  ans2.pb(255);
  ans2.pb(255);
  ans2.pb(255);
  for(int i=0; i<N; ++i){
    for(int j=0; j<4; ++j){
      for(int x=0; x<(M[i])%4; ++x){
  //      deb(4*i+j);
        ans1.pb(4*i+j);
      }
      for(int x=(M[i]%4); x<3; ++x){
        ans2.pb(4*i+j);
      }
      M[i]/=4;
    }
  }
  if(ans1.size()<=ans2.size()){
    for(int y: ans1){
      send(y);
    }
  }
  else{
    for(int y: ans2){
      send(y);
    }
  }

  
}
#include "decoder.h"
#include "decoderlib.h"
#include <bits/stdc++.h>
using namespace std;
using lli=long long int;
#define pb push_back
#define deb(x) cout<<#x<<": "<<x<<endl;


void decode(int N, int L, int X[])
{
  vector<int> count (256,0); 
  for(int i=0; i<L; ++i){
    count[X[i]]++;
  }
  if(count[255]>=4){
    count[255]-=3;
        vector<int> ans (N,0);
   for(int i=0; i<N; ++i){
    ans[i]=(3-count[4*i])+4*(3-count[4*i+1])+16*(3-count[4*i+2])+64*(3-count[4*i+3]);
  }
  for(int i=0; i<N; ++i){
 //  deb(ans[i]);
    output(ans[i]);
  }
  }
  else{
  vector<int> ans (N,0);
  for(int i=0; i<N; ++i){
    ans[i]=count[4*i]+4*count[4*i+1]+16*count[4*i+2]+64*count[4*i+3];
  }
  for(int i=0; i<N; ++i){
 //  deb(ans[i]);
    output(ans[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...