제출 #1244321

#제출 시각아이디문제언어결과실행 시간메모리
1244321tamyte앵무새 (IOI11_parrots)C++17
24 / 100
7 ms840 KiB
#include "encoder.h"
#include "encoderlib.h"
#include <bits/stdc++.h>
using namespace std;


void dbg(int n) {
  for (int i = 0; i < 8; ++i) {
    cout << (n >> i & 1);
  }
  cout << endl;
}

void encode(int N, int M[])
{
  int index = 0;
  for (int i = 0; i < N; ++i) {
    // dbg(M[i]);
      for (int j = 0; j < 8; j += 2) {
          int now = index++;
          int state = 0;
          for (int k = j; k < j + 2; ++k) {
            state += (1 << (k - j)) * (M[i] >> k & 1);
          }
          // cout << state << "\n";
          for (int k = 0; k < state; ++k) {
            send(now);
          // dbg(now);

          }


      }
  }
}
#include "decoder.h"
#include "decoderlib.h"
#include <bits/stdc++.h>
using namespace std;



void decode(int N, int L, int X[])
{
  vector<int> res(N);
  map<int, int> mp;
  {
    int index = 0;
     for (int i = 0; i < N; ++i) {
      for (int j = 0; j < 8; j += 2) {
        mp[index] = 0;
        index += 1;
      }
    }
  }
 
  for (int i = 0; i < L; ++i) {
    mp[X[i]] += 1;
  }
  // for ()
  int bit = 1, index = 0;
  for (auto& [x, cnt] : mp) {
    res[index] += bit * cnt;
    bit <<= 2;
    // cout << index << " " << bit << " " << cnt << "\n";
    if (bit == 256) {
      index += 1;
      bit = 1;
    }
  }
  for (int i = 0; i < N; ++i) {
    output(res[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...