Submission #1163306

#TimeUsernameProblemLanguageResultExecution timeMemory
1163306HappyCapybaraParrots (IOI11_parrots)C++20
98 / 100
4 ms840 KiB
#include "encoder.h"
#include "encoderlib.h"
#include<iostream>
using namespace std;

void encode(int N, int M[]){
  for(int i=0; i<N; i++){
    int x = 0;
    for (int j=0; j<8; j++){
      if (M[i] & (1<<j)) x += j/4+1;
    }
    //cout << x << endl;
    if (x > 8){
      for (int j=0; j<4; j++) send(i*4);
    }
    for (int j=0; j<4; j++){
      if (!(x > 8) != !(M[i] & (1<<j))) send(i*4+j);
    }
    for (int j=4; j<8; j++){
      if (!(x > 8) != !(M[i] & (1<<j))){
        send(i*4+j-4);
        send(i*4+j-4);
      }
    }
  }
}
#include "decoder.h"
#include "decoderlib.h"
#include<iostream>
using namespace std;

void decode(int N, int L, int X[]){
  int m[N];
  bool r[N];
  for (int i=0; i<N; i++){
    m[i] = 0;
    r[i] = false;
  }
  for(int i=0; i<L; i++){
    if ((m[X[i]/4] & (1<<(X[i] % 4))) && (m[X[i]/4] & (1<<((X[i] % 4) + 4)))){
      r[X[i]/4] = true;
      m[X[i]/4] ^= (1<<(X[i] % 4));
      m[X[i]/4] ^= (1<<((X[i] % 4) + 4));
    }
    else if (m[X[i]/4] & (1<<(X[i] % 4))){
      m[X[i]/4] ^= (1<<(X[i] % 4));
      m[X[i]/4] |= (1<<((X[i] % 4) + 4));
    }
    else m[X[i]/4] |= (1<<(X[i] % 4));
  }
  for (int i=0; i<N; i++){
    /*if (!r[i]) cout << m[i] << endl;
    else cout << 255-m[i] << endl;*/
    if (r[i]) output(255-m[i]);
    else output(m[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...