Submission #534605

#TimeUsernameProblemLanguageResultExecution timeMemory
534605AdamGSParrots (IOI11_parrots)C++17
81 / 100
4 ms1056 KiB
#include "encoder.h"
#include "encoderlib.h"
#include<bits/stdc++.h>
using namespace std;
#define rep(a, b) for(int a = 0; a < (b); ++a)
void encode(int n, int T[]) {
  rep(i, n) {
    int ile=0, x=T[i];
    while(x) {
      ile+=x&1;
      x/=2;
    }
    if(ile<=4) {
      rep(j, 8) if(T[i]&(1<<j)) send(i+32*j);
    } else {
      send(i);
      send(i);
      rep(j, 8) if(!(T[i]&(1<<j))) send(i+32*j);
    }
  }
}
#include "decoder.h"
#include "decoderlib.h"
#include<bits/stdc++.h>
using namespace std;
#define rep(a, b) for(int a = 0; a < (b); ++a)
#define pb push_back
void decode(int n, int l, int T[]) {
  vector<int>V[100];
  rep(i, l) V[T[i]%32].pb(T[i]/32);
  rep(i, n) {
    int ile[8];
    rep(j, 8) ile[j]=0;
    for(auto j : V[i]) ++ile[j];
    if(ile[0]>=2) {
      ile[0]-=2;
      rep(j, 8) ile[j]^=1;
    }
    int ans=0;
    rep(j, 8) ans+=ile[j]*(1<<j);
    output(ans);
  }
}
#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...