제출 #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...