Submission #1140440

#TimeUsernameProblemLanguageResultExecution timeMemory
1140440hyl_kibouParrots (IOI11_parrots)C++17
81 / 100
2 ms840 KiB
#include "encoder.h"
#include "encoderlib.h"

void encode(int N, int M[])
{
  int sum = 0;
  int cat = 0;
  int a = 0;
  
  for(int i=0; i<N; i++){
    cat = 0;
    a = M[i];
    while(a){
        
        if(a%2){
            send(i*8+cat);
            //printf("%d ",i*8+cat);
        }
        a/=2;
        ++cat;
    }
  }
  //printf("\n");
}
#include "decoder.h"
#include "decoderlib.h"
#include <algorithm>

int exo[] = {1, 2, 4, 8, 16, 32, 64, 128};

void decode(int N, int L, int X[])
{
  std::sort(X, X+L);
  int got = 8;
  int sum = 0;
  int cat = 0;
  for(int i=0; i<L; i++) { 
    //printf("%d %d %d\n", sum, X[i], got);
    while(X[i]>=got){
        //printf("%d*\n", sum);
        output(sum);
        sum =0;
        ++cat;
        got+=8;
    }
    sum+=exo[X[i]-got+8];
    
  }
  while(cat<N){
  //if(cat<N){
      //printf("%d\n", sum);
      output(sum);
      sum = 0;
      ++cat;
  }
  //printf("\n");
}
#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...