#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |