제출 #1154343

#제출 시각아이디문제언어결과실행 시간메모리
1154343hiderr앵무새 (IOI11_parrots)C++20
92 / 100
11 ms1124 KiB
#include "encoder.h"
#include "encoderlib.h"

#include <bits/stdc++.h>
using namespace std;
#define loop(i, a, b) for(int i = a; i <= b; i++)
#define loop_rev(i, a, b) for(int i = a; i >= b; i--)
#define all(x) x.begin(), x.end()
#define sz(x) int(x.size())
#define eb emplace_back
#define pb push_back

static vector<vector<int>> multisets = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, }, { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, }, { 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, }, { 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, }, { 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, }, { 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, }, { 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, }, { 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, }, { 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, }, { 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, }, { 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, }, { 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, }, { 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, }, { 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, }, { 0, 0, 0, 0, 0, 0, 0, 2, 2, 3, }, { 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, }, { 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, }, { 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, }, { 0, 0, 0, 0, 0, 0, 1, 1, 1, 2, }, { 0, 0, 0, 0, 0, 0, 1, 1, 1, 3, }, { 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, }, { 0, 0, 0, 0, 0, 0, 1, 1, 2, 3, }, { 0, 0, 0, 0, 0, 0, 1, 1, 3, 3, }, { 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, }, { 0, 0, 0, 0, 0, 0, 1, 2, 2, 3, }, { 0, 0, 0, 0, 0, 0, 1, 2, 3, 3, }, { 0, 0, 0, 0, 0, 0, 1, 3, 3, 3, }, { 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, }, { 0, 0, 0, 0, 0, 0, 2, 2, 2, 3, }, { 0, 0, 0, 0, 0, 0, 2, 2, 3, 3, }, { 0, 0, 0, 0, 0, 0, 2, 3, 3, 3, }, { 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, }, { 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, }, { 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, }, { 0, 0, 0, 0, 0, 1, 1, 1, 1, 3, }, { 0, 0, 0, 0, 0, 1, 1, 1, 2, 2, }, { 0, 0, 0, 0, 0, 1, 1, 1, 2, 3, }, { 0, 0, 0, 0, 0, 1, 1, 1, 3, 3, }, { 0, 0, 0, 0, 0, 1, 1, 2, 2, 2, }, { 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, }, { 0, 0, 0, 0, 0, 1, 1, 2, 3, 3, }, { 0, 0, 0, 0, 0, 1, 1, 3, 3, 3, }, { 0, 0, 0, 0, 0, 1, 2, 2, 2, 2, }, { 0, 0, 0, 0, 0, 1, 2, 2, 2, 3, }, { 0, 0, 0, 0, 0, 1, 2, 2, 3, 3, }, { 0, 0, 0, 0, 0, 1, 2, 3, 3, 3, }, { 0, 0, 0, 0, 0, 1, 3, 3, 3, 3, }, { 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, }, { 0, 0, 0, 0, 0, 2, 2, 2, 2, 3, }, { 0, 0, 0, 0, 0, 2, 2, 2, 3, 3, }, { 0, 0, 0, 0, 0, 2, 2, 3, 3, 3, }, { 0, 0, 0, 0, 0, 2, 3, 3, 3, 3, }, { 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, }, { 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, }, { 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, }, { 0, 0, 0, 0, 1, 1, 1, 1, 1, 3, }, { 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, }, { 0, 0, 0, 0, 1, 1, 1, 1, 2, 3, }, { 0, 0, 0, 0, 1, 1, 1, 1, 3, 3, }, { 0, 0, 0, 0, 1, 1, 1, 2, 2, 2, }, { 0, 0, 0, 0, 1, 1, 1, 2, 2, 3, }, { 0, 0, 0, 0, 1, 1, 1, 2, 3, 3, }, { 0, 0, 0, 0, 1, 1, 1, 3, 3, 3, }, { 0, 0, 0, 0, 1, 1, 2, 2, 2, 2, }, { 0, 0, 0, 0, 1, 1, 2, 2, 2, 3, }, { 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, }, { 0, 0, 0, 0, 1, 1, 2, 3, 3, 3, }, { 0, 0, 0, 0, 1, 1, 3, 3, 3, 3, }, { 0, 0, 0, 0, 1, 2, 2, 2, 2, 2, }, { 0, 0, 0, 0, 1, 2, 2, 2, 2, 3, }, { 0, 0, 0, 0, 1, 2, 2, 2, 3, 3, }, { 0, 0, 0, 0, 1, 2, 2, 3, 3, 3, }, { 0, 0, 0, 0, 1, 2, 3, 3, 3, 3, }, { 0, 0, 0, 0, 1, 3, 3, 3, 3, 3, }, { 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, }, { 0, 0, 0, 0, 2, 2, 2, 2, 2, 3, }, { 0, 0, 0, 0, 2, 2, 2, 2, 3, 3, }, { 0, 0, 0, 0, 2, 2, 2, 3, 3, 3, }, { 0, 0, 0, 0, 2, 2, 3, 3, 3, 3, }, { 0, 0, 0, 0, 2, 3, 3, 3, 3, 3, }, { 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, }, { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, }, { 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, }, { 0, 0, 0, 1, 1, 1, 1, 1, 1, 3, }, { 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, }, { 0, 0, 0, 1, 1, 1, 1, 1, 2, 3, }, { 0, 0, 0, 1, 1, 1, 1, 1, 3, 3, }, { 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, }, { 0, 0, 0, 1, 1, 1, 1, 2, 2, 3, }, { 0, 0, 0, 1, 1, 1, 1, 2, 3, 3, }, { 0, 0, 0, 1, 1, 1, 1, 3, 3, 3, }, { 0, 0, 0, 1, 1, 1, 2, 2, 2, 2, }, { 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, }, { 0, 0, 0, 1, 1, 1, 2, 2, 3, 3, }, { 0, 0, 0, 1, 1, 1, 2, 3, 3, 3, }, { 0, 0, 0, 1, 1, 1, 3, 3, 3, 3, }, { 0, 0, 0, 1, 1, 2, 2, 2, 2, 2, }, { 0, 0, 0, 1, 1, 2, 2, 2, 2, 3, }, { 0, 0, 0, 1, 1, 2, 2, 2, 3, 3, }, { 0, 0, 0, 1, 1, 2, 2, 3, 3, 3, }, { 0, 0, 0, 1, 1, 2, 3, 3, 3, 3, }, { 0, 0, 0, 1, 1, 3, 3, 3, 3, 3, }, { 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, }, { 0, 0, 0, 1, 2, 2, 2, 2, 2, 3, }, { 0, 0, 0, 1, 2, 2, 2, 2, 3, 3, }, { 0, 0, 0, 1, 2, 2, 2, 3, 3, 3, }, { 0, 0, 0, 1, 2, 2, 3, 3, 3, 3, }, { 0, 0, 0, 1, 2, 3, 3, 3, 3, 3, }, { 0, 0, 0, 1, 3, 3, 3, 3, 3, 3, }, { 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, }, { 0, 0, 0, 2, 2, 2, 2, 2, 2, 3, }, { 0, 0, 0, 2, 2, 2, 2, 2, 3, 3, }, { 0, 0, 0, 2, 2, 2, 2, 3, 3, 3, }, { 0, 0, 0, 2, 2, 2, 3, 3, 3, 3, }, { 0, 0, 0, 2, 2, 3, 3, 3, 3, 3, }, { 0, 0, 0, 2, 3, 3, 3, 3, 3, 3, }, { 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, }, { 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, }, { 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, }, { 0, 0, 1, 1, 1, 1, 1, 1, 1, 3, }, { 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, }, { 0, 0, 1, 1, 1, 1, 1, 1, 2, 3, }, { 0, 0, 1, 1, 1, 1, 1, 1, 3, 3, }, { 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, }, { 0, 0, 1, 1, 1, 1, 1, 2, 2, 3, }, { 0, 0, 1, 1, 1, 1, 1, 2, 3, 3, }, { 0, 0, 1, 1, 1, 1, 1, 3, 3, 3, }, { 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, }, { 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, }, { 0, 0, 1, 1, 1, 1, 2, 2, 3, 3, }, { 0, 0, 1, 1, 1, 1, 2, 3, 3, 3, }, { 0, 0, 1, 1, 1, 1, 3, 3, 3, 3, }, { 0, 0, 1, 1, 1, 2, 2, 2, 2, 2, }, { 0, 0, 1, 1, 1, 2, 2, 2, 2, 3, }, { 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, }, { 0, 0, 1, 1, 1, 2, 2, 3, 3, 3, }, { 0, 0, 1, 1, 1, 2, 3, 3, 3, 3, }, { 0, 0, 1, 1, 1, 3, 3, 3, 3, 3, }, { 0, 0, 1, 1, 2, 2, 2, 2, 2, 2, }, { 0, 0, 1, 1, 2, 2, 2, 2, 2, 3, }, { 0, 0, 1, 1, 2, 2, 2, 2, 3, 3, }, { 0, 0, 1, 1, 2, 2, 2, 3, 3, 3, }, { 0, 0, 1, 1, 2, 2, 3, 3, 3, 3, }, { 0, 0, 1, 1, 2, 3, 3, 3, 3, 3, }, { 0, 0, 1, 1, 3, 3, 3, 3, 3, 3, }, { 0, 0, 1, 2, 2, 2, 2, 2, 2, 2, }, { 0, 0, 1, 2, 2, 2, 2, 2, 2, 3, }, { 0, 0, 1, 2, 2, 2, 2, 2, 3, 3, }, { 0, 0, 1, 2, 2, 2, 2, 3, 3, 3, }, { 0, 0, 1, 2, 2, 2, 3, 3, 3, 3, }, { 0, 0, 1, 2, 2, 3, 3, 3, 3, 3, }, { 0, 0, 1, 2, 3, 3, 3, 3, 3, 3, }, { 0, 0, 1, 3, 3, 3, 3, 3, 3, 3, }, { 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, }, { 0, 0, 2, 2, 2, 2, 2, 2, 2, 3, }, { 0, 0, 2, 2, 2, 2, 2, 2, 3, 3, }, { 0, 0, 2, 2, 2, 2, 2, 3, 3, 3, }, { 0, 0, 2, 2, 2, 2, 3, 3, 3, 3, }, { 0, 0, 2, 2, 2, 3, 3, 3, 3, 3, }, { 0, 0, 2, 2, 3, 3, 3, 3, 3, 3, }, { 0, 0, 2, 3, 3, 3, 3, 3, 3, 3, }, { 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, }, { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, }, { 0, 1, 1, 1, 1, 1, 1, 1, 1, 3, }, { 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, }, { 0, 1, 1, 1, 1, 1, 1, 1, 2, 3, }, { 0, 1, 1, 1, 1, 1, 1, 1, 3, 3, }, { 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, }, { 0, 1, 1, 1, 1, 1, 1, 2, 2, 3, }, { 0, 1, 1, 1, 1, 1, 1, 2, 3, 3, }, { 0, 1, 1, 1, 1, 1, 1, 3, 3, 3, }, { 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, }, { 0, 1, 1, 1, 1, 1, 2, 2, 2, 3, }, { 0, 1, 1, 1, 1, 1, 2, 2, 3, 3, }, { 0, 1, 1, 1, 1, 1, 2, 3, 3, 3, }, { 0, 1, 1, 1, 1, 1, 3, 3, 3, 3, }, { 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, }, { 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, }, { 0, 1, 1, 1, 1, 2, 2, 2, 3, 3, }, { 0, 1, 1, 1, 1, 2, 2, 3, 3, 3, }, { 0, 1, 1, 1, 1, 2, 3, 3, 3, 3, }, { 0, 1, 1, 1, 1, 3, 3, 3, 3, 3, }, { 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, }, { 0, 1, 1, 1, 2, 2, 2, 2, 2, 3, }, { 0, 1, 1, 1, 2, 2, 2, 2, 3, 3, }, { 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, }, { 0, 1, 1, 1, 2, 2, 3, 3, 3, 3, }, { 0, 1, 1, 1, 2, 3, 3, 3, 3, 3, }, { 0, 1, 1, 1, 3, 3, 3, 3, 3, 3, }, { 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, }, { 0, 1, 1, 2, 2, 2, 2, 2, 2, 3, }, { 0, 1, 1, 2, 2, 2, 2, 2, 3, 3, }, { 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, }, { 0, 1, 1, 2, 2, 2, 3, 3, 3, 3, }, { 0, 1, 1, 2, 2, 3, 3, 3, 3, 3, }, { 0, 1, 1, 2, 3, 3, 3, 3, 3, 3, }, { 0, 1, 1, 3, 3, 3, 3, 3, 3, 3, }, { 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, }, { 0, 1, 2, 2, 2, 2, 2, 2, 2, 3, }, { 0, 1, 2, 2, 2, 2, 2, 2, 3, 3, }, { 0, 1, 2, 2, 2, 2, 2, 3, 3, 3, }, { 0, 1, 2, 2, 2, 2, 3, 3, 3, 3, }, { 0, 1, 2, 2, 2, 3, 3, 3, 3, 3, }, { 0, 1, 2, 2, 3, 3, 3, 3, 3, 3, }, { 0, 1, 2, 3, 3, 3, 3, 3, 3, 3, }, { 0, 1, 3, 3, 3, 3, 3, 3, 3, 3, }, { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, }, { 0, 2, 2, 2, 2, 2, 2, 2, 2, 3, }, { 0, 2, 2, 2, 2, 2, 2, 2, 3, 3, }, { 0, 2, 2, 2, 2, 2, 2, 3, 3, 3, }, { 0, 2, 2, 2, 2, 2, 3, 3, 3, 3, }, { 0, 2, 2, 2, 2, 3, 3, 3, 3, 3, }, { 0, 2, 2, 2, 3, 3, 3, 3, 3, 3, }, { 0, 2, 2, 3, 3, 3, 3, 3, 3, 3, }, { 0, 2, 3, 3, 3, 3, 3, 3, 3, 3, }, { 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, }, { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, { 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, }, { 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, }, { 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, }, { 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, }, { 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, }, { 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, }, { 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, }, { 1, 1, 1, 1, 1, 1, 1, 2, 3, 3, }, { 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, }, { 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, }, { 1, 1, 1, 1, 1, 1, 2, 2, 2, 3, }, { 1, 1, 1, 1, 1, 1, 2, 2, 3, 3, }, { 1, 1, 1, 1, 1, 1, 2, 3, 3, 3, }, { 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, }, { 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, }, { 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, }, { 1, 1, 1, 1, 1, 2, 2, 2, 3, 3, }, { 1, 1, 1, 1, 1, 2, 2, 3, 3, 3, }, { 1, 1, 1, 1, 1, 2, 3, 3, 3, 3, }, { 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, }, { 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, }, { 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, }, { 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, }, { 1, 1, 1, 1, 2, 2, 2, 3, 3, 3, }, { 1, 1, 1, 1, 2, 2, 3, 3, 3, 3, }, { 1, 1, 1, 1, 2, 3, 3, 3, 3, 3, }, { 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, }, { 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, }, { 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, }, { 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, }, { 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, }, { 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, }, { 1, 1, 1, 2, 2, 3, 3, 3, 3, 3, }, { 1, 1, 1, 2, 3, 3, 3, 3, 3, 3, }, { 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, }, { 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, }, { 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, }, { 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, }, { 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, }, { 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, }, { 1, 1, 2, 2, 2, 3, 3, 3, 3, 3, }, { 1, 1, 2, 2, 3, 3, 3, 3, 3, 3, }, { 1, 1, 2, 3, 3, 3, 3, 3, 3, 3, }, { 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, }, { 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, }, { 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, }, { 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, }, { 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, }, { 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, }, { 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, }, { 1, 2, 2, 2, 3, 3, 3, 3, 3, 3, }, { 1, 2, 2, 3, 3, 3, 3, 3, 3, 3, }, { 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, }, { 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, }, { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, }, { 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, }, { 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, }, { 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, }, { 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, }, { 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, }, { 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, }, { 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, }, { 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, }, { 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, }, { 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, }, };

void burn(int val, int id) {
  auto const& m = multisets[val];
  loop(i, 0, sz(m) - 1) {
    int byte = 0;
    byte |= m[i];
    byte |= (id << 2);
    send(byte);
  }
}

void encode(int n, int message[]) {
  loop(i, 0, n-1) {
    burn(message[i], i);
  }
}
#include "decoder.h"
#include "decoderlib.h"

#include <bits/stdc++.h>
using namespace std;
#define loop(i, a, b) for(int i = a; i <= b; i++)
#define loop_rev(i, a, b) for(int i = a; i >= b; i--)
#define all(x) x.begin(), x.end()
#define sz(x) int(x.size())
#define eb emplace_back
#define pb push_back

static vector<vector<int>> multisets = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, }, { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, }, { 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, }, { 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, }, { 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, }, { 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, }, { 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, }, { 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, }, { 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, }, { 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, }, { 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, }, { 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, }, { 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, }, { 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, }, { 0, 0, 0, 0, 0, 0, 0, 2, 2, 3, }, { 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, }, { 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, }, { 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, }, { 0, 0, 0, 0, 0, 0, 1, 1, 1, 2, }, { 0, 0, 0, 0, 0, 0, 1, 1, 1, 3, }, { 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, }, { 0, 0, 0, 0, 0, 0, 1, 1, 2, 3, }, { 0, 0, 0, 0, 0, 0, 1, 1, 3, 3, }, { 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, }, { 0, 0, 0, 0, 0, 0, 1, 2, 2, 3, }, { 0, 0, 0, 0, 0, 0, 1, 2, 3, 3, }, { 0, 0, 0, 0, 0, 0, 1, 3, 3, 3, }, { 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, }, { 0, 0, 0, 0, 0, 0, 2, 2, 2, 3, }, { 0, 0, 0, 0, 0, 0, 2, 2, 3, 3, }, { 0, 0, 0, 0, 0, 0, 2, 3, 3, 3, }, { 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, }, { 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, }, { 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, }, { 0, 0, 0, 0, 0, 1, 1, 1, 1, 3, }, { 0, 0, 0, 0, 0, 1, 1, 1, 2, 2, }, { 0, 0, 0, 0, 0, 1, 1, 1, 2, 3, }, { 0, 0, 0, 0, 0, 1, 1, 1, 3, 3, }, { 0, 0, 0, 0, 0, 1, 1, 2, 2, 2, }, { 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, }, { 0, 0, 0, 0, 0, 1, 1, 2, 3, 3, }, { 0, 0, 0, 0, 0, 1, 1, 3, 3, 3, }, { 0, 0, 0, 0, 0, 1, 2, 2, 2, 2, }, { 0, 0, 0, 0, 0, 1, 2, 2, 2, 3, }, { 0, 0, 0, 0, 0, 1, 2, 2, 3, 3, }, { 0, 0, 0, 0, 0, 1, 2, 3, 3, 3, }, { 0, 0, 0, 0, 0, 1, 3, 3, 3, 3, }, { 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, }, { 0, 0, 0, 0, 0, 2, 2, 2, 2, 3, }, { 0, 0, 0, 0, 0, 2, 2, 2, 3, 3, }, { 0, 0, 0, 0, 0, 2, 2, 3, 3, 3, }, { 0, 0, 0, 0, 0, 2, 3, 3, 3, 3, }, { 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, }, { 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, }, { 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, }, { 0, 0, 0, 0, 1, 1, 1, 1, 1, 3, }, { 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, }, { 0, 0, 0, 0, 1, 1, 1, 1, 2, 3, }, { 0, 0, 0, 0, 1, 1, 1, 1, 3, 3, }, { 0, 0, 0, 0, 1, 1, 1, 2, 2, 2, }, { 0, 0, 0, 0, 1, 1, 1, 2, 2, 3, }, { 0, 0, 0, 0, 1, 1, 1, 2, 3, 3, }, { 0, 0, 0, 0, 1, 1, 1, 3, 3, 3, }, { 0, 0, 0, 0, 1, 1, 2, 2, 2, 2, }, { 0, 0, 0, 0, 1, 1, 2, 2, 2, 3, }, { 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, }, { 0, 0, 0, 0, 1, 1, 2, 3, 3, 3, }, { 0, 0, 0, 0, 1, 1, 3, 3, 3, 3, }, { 0, 0, 0, 0, 1, 2, 2, 2, 2, 2, }, { 0, 0, 0, 0, 1, 2, 2, 2, 2, 3, }, { 0, 0, 0, 0, 1, 2, 2, 2, 3, 3, }, { 0, 0, 0, 0, 1, 2, 2, 3, 3, 3, }, { 0, 0, 0, 0, 1, 2, 3, 3, 3, 3, }, { 0, 0, 0, 0, 1, 3, 3, 3, 3, 3, }, { 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, }, { 0, 0, 0, 0, 2, 2, 2, 2, 2, 3, }, { 0, 0, 0, 0, 2, 2, 2, 2, 3, 3, }, { 0, 0, 0, 0, 2, 2, 2, 3, 3, 3, }, { 0, 0, 0, 0, 2, 2, 3, 3, 3, 3, }, { 0, 0, 0, 0, 2, 3, 3, 3, 3, 3, }, { 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, }, { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, }, { 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, }, { 0, 0, 0, 1, 1, 1, 1, 1, 1, 3, }, { 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, }, { 0, 0, 0, 1, 1, 1, 1, 1, 2, 3, }, { 0, 0, 0, 1, 1, 1, 1, 1, 3, 3, }, { 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, }, { 0, 0, 0, 1, 1, 1, 1, 2, 2, 3, }, { 0, 0, 0, 1, 1, 1, 1, 2, 3, 3, }, { 0, 0, 0, 1, 1, 1, 1, 3, 3, 3, }, { 0, 0, 0, 1, 1, 1, 2, 2, 2, 2, }, { 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, }, { 0, 0, 0, 1, 1, 1, 2, 2, 3, 3, }, { 0, 0, 0, 1, 1, 1, 2, 3, 3, 3, }, { 0, 0, 0, 1, 1, 1, 3, 3, 3, 3, }, { 0, 0, 0, 1, 1, 2, 2, 2, 2, 2, }, { 0, 0, 0, 1, 1, 2, 2, 2, 2, 3, }, { 0, 0, 0, 1, 1, 2, 2, 2, 3, 3, }, { 0, 0, 0, 1, 1, 2, 2, 3, 3, 3, }, { 0, 0, 0, 1, 1, 2, 3, 3, 3, 3, }, { 0, 0, 0, 1, 1, 3, 3, 3, 3, 3, }, { 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, }, { 0, 0, 0, 1, 2, 2, 2, 2, 2, 3, }, { 0, 0, 0, 1, 2, 2, 2, 2, 3, 3, }, { 0, 0, 0, 1, 2, 2, 2, 3, 3, 3, }, { 0, 0, 0, 1, 2, 2, 3, 3, 3, 3, }, { 0, 0, 0, 1, 2, 3, 3, 3, 3, 3, }, { 0, 0, 0, 1, 3, 3, 3, 3, 3, 3, }, { 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, }, { 0, 0, 0, 2, 2, 2, 2, 2, 2, 3, }, { 0, 0, 0, 2, 2, 2, 2, 2, 3, 3, }, { 0, 0, 0, 2, 2, 2, 2, 3, 3, 3, }, { 0, 0, 0, 2, 2, 2, 3, 3, 3, 3, }, { 0, 0, 0, 2, 2, 3, 3, 3, 3, 3, }, { 0, 0, 0, 2, 3, 3, 3, 3, 3, 3, }, { 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, }, { 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, }, { 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, }, { 0, 0, 1, 1, 1, 1, 1, 1, 1, 3, }, { 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, }, { 0, 0, 1, 1, 1, 1, 1, 1, 2, 3, }, { 0, 0, 1, 1, 1, 1, 1, 1, 3, 3, }, { 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, }, { 0, 0, 1, 1, 1, 1, 1, 2, 2, 3, }, { 0, 0, 1, 1, 1, 1, 1, 2, 3, 3, }, { 0, 0, 1, 1, 1, 1, 1, 3, 3, 3, }, { 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, }, { 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, }, { 0, 0, 1, 1, 1, 1, 2, 2, 3, 3, }, { 0, 0, 1, 1, 1, 1, 2, 3, 3, 3, }, { 0, 0, 1, 1, 1, 1, 3, 3, 3, 3, }, { 0, 0, 1, 1, 1, 2, 2, 2, 2, 2, }, { 0, 0, 1, 1, 1, 2, 2, 2, 2, 3, }, { 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, }, { 0, 0, 1, 1, 1, 2, 2, 3, 3, 3, }, { 0, 0, 1, 1, 1, 2, 3, 3, 3, 3, }, { 0, 0, 1, 1, 1, 3, 3, 3, 3, 3, }, { 0, 0, 1, 1, 2, 2, 2, 2, 2, 2, }, { 0, 0, 1, 1, 2, 2, 2, 2, 2, 3, }, { 0, 0, 1, 1, 2, 2, 2, 2, 3, 3, }, { 0, 0, 1, 1, 2, 2, 2, 3, 3, 3, }, { 0, 0, 1, 1, 2, 2, 3, 3, 3, 3, }, { 0, 0, 1, 1, 2, 3, 3, 3, 3, 3, }, { 0, 0, 1, 1, 3, 3, 3, 3, 3, 3, }, { 0, 0, 1, 2, 2, 2, 2, 2, 2, 2, }, { 0, 0, 1, 2, 2, 2, 2, 2, 2, 3, }, { 0, 0, 1, 2, 2, 2, 2, 2, 3, 3, }, { 0, 0, 1, 2, 2, 2, 2, 3, 3, 3, }, { 0, 0, 1, 2, 2, 2, 3, 3, 3, 3, }, { 0, 0, 1, 2, 2, 3, 3, 3, 3, 3, }, { 0, 0, 1, 2, 3, 3, 3, 3, 3, 3, }, { 0, 0, 1, 3, 3, 3, 3, 3, 3, 3, }, { 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, }, { 0, 0, 2, 2, 2, 2, 2, 2, 2, 3, }, { 0, 0, 2, 2, 2, 2, 2, 2, 3, 3, }, { 0, 0, 2, 2, 2, 2, 2, 3, 3, 3, }, { 0, 0, 2, 2, 2, 2, 3, 3, 3, 3, }, { 0, 0, 2, 2, 2, 3, 3, 3, 3, 3, }, { 0, 0, 2, 2, 3, 3, 3, 3, 3, 3, }, { 0, 0, 2, 3, 3, 3, 3, 3, 3, 3, }, { 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, }, { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, }, { 0, 1, 1, 1, 1, 1, 1, 1, 1, 3, }, { 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, }, { 0, 1, 1, 1, 1, 1, 1, 1, 2, 3, }, { 0, 1, 1, 1, 1, 1, 1, 1, 3, 3, }, { 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, }, { 0, 1, 1, 1, 1, 1, 1, 2, 2, 3, }, { 0, 1, 1, 1, 1, 1, 1, 2, 3, 3, }, { 0, 1, 1, 1, 1, 1, 1, 3, 3, 3, }, { 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, }, { 0, 1, 1, 1, 1, 1, 2, 2, 2, 3, }, { 0, 1, 1, 1, 1, 1, 2, 2, 3, 3, }, { 0, 1, 1, 1, 1, 1, 2, 3, 3, 3, }, { 0, 1, 1, 1, 1, 1, 3, 3, 3, 3, }, { 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, }, { 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, }, { 0, 1, 1, 1, 1, 2, 2, 2, 3, 3, }, { 0, 1, 1, 1, 1, 2, 2, 3, 3, 3, }, { 0, 1, 1, 1, 1, 2, 3, 3, 3, 3, }, { 0, 1, 1, 1, 1, 3, 3, 3, 3, 3, }, { 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, }, { 0, 1, 1, 1, 2, 2, 2, 2, 2, 3, }, { 0, 1, 1, 1, 2, 2, 2, 2, 3, 3, }, { 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, }, { 0, 1, 1, 1, 2, 2, 3, 3, 3, 3, }, { 0, 1, 1, 1, 2, 3, 3, 3, 3, 3, }, { 0, 1, 1, 1, 3, 3, 3, 3, 3, 3, }, { 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, }, { 0, 1, 1, 2, 2, 2, 2, 2, 2, 3, }, { 0, 1, 1, 2, 2, 2, 2, 2, 3, 3, }, { 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, }, { 0, 1, 1, 2, 2, 2, 3, 3, 3, 3, }, { 0, 1, 1, 2, 2, 3, 3, 3, 3, 3, }, { 0, 1, 1, 2, 3, 3, 3, 3, 3, 3, }, { 0, 1, 1, 3, 3, 3, 3, 3, 3, 3, }, { 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, }, { 0, 1, 2, 2, 2, 2, 2, 2, 2, 3, }, { 0, 1, 2, 2, 2, 2, 2, 2, 3, 3, }, { 0, 1, 2, 2, 2, 2, 2, 3, 3, 3, }, { 0, 1, 2, 2, 2, 2, 3, 3, 3, 3, }, { 0, 1, 2, 2, 2, 3, 3, 3, 3, 3, }, { 0, 1, 2, 2, 3, 3, 3, 3, 3, 3, }, { 0, 1, 2, 3, 3, 3, 3, 3, 3, 3, }, { 0, 1, 3, 3, 3, 3, 3, 3, 3, 3, }, { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, }, { 0, 2, 2, 2, 2, 2, 2, 2, 2, 3, }, { 0, 2, 2, 2, 2, 2, 2, 2, 3, 3, }, { 0, 2, 2, 2, 2, 2, 2, 3, 3, 3, }, { 0, 2, 2, 2, 2, 2, 3, 3, 3, 3, }, { 0, 2, 2, 2, 2, 3, 3, 3, 3, 3, }, { 0, 2, 2, 2, 3, 3, 3, 3, 3, 3, }, { 0, 2, 2, 3, 3, 3, 3, 3, 3, 3, }, { 0, 2, 3, 3, 3, 3, 3, 3, 3, 3, }, { 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, }, { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, { 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, }, { 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, }, { 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, }, { 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, }, { 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, }, { 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, }, { 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, }, { 1, 1, 1, 1, 1, 1, 1, 2, 3, 3, }, { 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, }, { 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, }, { 1, 1, 1, 1, 1, 1, 2, 2, 2, 3, }, { 1, 1, 1, 1, 1, 1, 2, 2, 3, 3, }, { 1, 1, 1, 1, 1, 1, 2, 3, 3, 3, }, { 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, }, { 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, }, { 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, }, { 1, 1, 1, 1, 1, 2, 2, 2, 3, 3, }, { 1, 1, 1, 1, 1, 2, 2, 3, 3, 3, }, { 1, 1, 1, 1, 1, 2, 3, 3, 3, 3, }, { 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, }, { 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, }, { 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, }, { 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, }, { 1, 1, 1, 1, 2, 2, 2, 3, 3, 3, }, { 1, 1, 1, 1, 2, 2, 3, 3, 3, 3, }, { 1, 1, 1, 1, 2, 3, 3, 3, 3, 3, }, { 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, }, { 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, }, { 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, }, { 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, }, { 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, }, { 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, }, { 1, 1, 1, 2, 2, 3, 3, 3, 3, 3, }, { 1, 1, 1, 2, 3, 3, 3, 3, 3, 3, }, { 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, }, { 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, }, { 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, }, { 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, }, { 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, }, { 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, }, { 1, 1, 2, 2, 2, 3, 3, 3, 3, 3, }, { 1, 1, 2, 2, 3, 3, 3, 3, 3, 3, }, { 1, 1, 2, 3, 3, 3, 3, 3, 3, 3, }, { 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, }, { 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, }, { 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, }, { 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, }, { 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, }, { 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, }, { 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, }, { 1, 2, 2, 2, 3, 3, 3, 3, 3, 3, }, { 1, 2, 2, 3, 3, 3, 3, 3, 3, 3, }, { 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, }, { 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, }, { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, }, { 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, }, { 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, }, { 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, }, { 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, }, { 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, }, { 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, }, { 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, }, { 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, }, { 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, }, { 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, }, };

void decode(int n, int l, int shuffled[]) {
  vector<vector<int>> codes(n);
  vector<int> ans(n);
  loop(i, 0, l-1) {
    int byte = shuffled[i];
    int m = byte & 0b11;
    int id = byte >> 2;
    codes[id].pb(m);
  }
  loop(i, 0, n - 1) {
    sort(all(codes[i]));
    loop(val, 0, sz(multisets) - 1) {
      if(multisets[val] == codes[i]) {
        ans[i] = val;
        break;
      }
    }
    output(ans[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...