Submission #962940

#TimeUsernameProblemLanguageResultExecution timeMemory
962940MalixParrots (IOI11_parrots)C++14
88 / 100
8 ms1552 KiB
#include <bits/stdc++.h>
#include "encoder.h"
#include "encoderlib.h"

using namespace std;

typedef long long ll;
typedef vector<int> vi;
typedef vector<vi> vii;
typedef pair<int,int> pi;

#define REP(i,a,b) for(int i=a;i<b;i++)
#define F first
#define S second
#define PB push_back
#define MP make_pair


void encode(int N, int M[])
{
  if(N<=32){
    REP(i,0,N){
      int k=i<<3;
      REP(j,0,8){
        int t=M[i]&(1<<j);
        if(t!=0){
          send(k+j);
        }
      }
    }
  }
  else{
    REP(i,0,N){
      int k=i<<2;
      REP(j,0,4){
        int t=M[i]&(1<<j);
        if(t!=0){
          send(k+j);
        }
      }
      REP(j,4,8){
        int t=M[i]&(1<<j);
        if(t!=0){
          send(k+j-4);
          send(k+j-4);
        }
      }
    }
  }
  
}
#include <bits/stdc++.h>
#include "decoder.h"
#include "decoderlib.h"

using namespace std;

typedef long long ll;
typedef vector<int> vi;
typedef vector<vi> vii;
typedef pair<int,int> pi;

#define REP(i,a,b) for(int i=a;i<b;i++)
#define F first
#define S second
#define PB push_back
#define MP make_pair


void decode(int N, int L, int X[])
{
  vi a(L);
  REP(i,0,L)a[i]=X[i];
  sort(a.begin(),a.end());
  if(N<=32){
      REP(i,0,N){
      int k=i<<3;
      int ans=0;
      REP(j,0,8){
        bool flag=binary_search(a.begin(),a.end(),k+j);
        if(flag)ans|=(1<<j);
      }
      output(ans);
    }
  }
  else{
    REP(i,0,N){
      int k=i<<2;
      int ans=0;
      REP(j,0,4){
        int c=upper_bound(a.begin(),a.end(),k+j)-lower_bound(a.begin(),a.end(),k+j);
        if(c%2==1)ans|=(1<<j);
        if(c>1)ans|=(1<<(j+4));
      }
      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...