Submission #1169453

#TimeUsernameProblemLanguageResultExecution timeMemory
1169453aentrenusPainting Squares (IOI20_squares)C++20
100 / 100
28 ms568 KiB
#include<bits/stdc++.h> using namespace std; using ll = long long; using ull = unsigned long long; using vi = vector<int>; using vl = vector<ll>; using vb = vector<bool>; using pii = pair<int, int>; using pll = pair<ll, ll>; using str = string; #define all(a) a.begin(), a.end() #define print(a) for (auto elem:a) cout<<elem<<' '; cout<<'\n' #define segprep(b) resize(1<<((int)ceil(log2(b.size()))+1)) #define FOR(a) for (int _ = 0; _ < a; _++) const int k = 10; const vector<str> ind_to_vb = { "0000000000", "0000000001", "0000000010", "0000000100", "0000001000", "0000010000", "0000100000", "0001000000", "0010000000", "0100000000", "1000000001", "0000000011", "0000000110", "0000001100", "0000011000", "0000110000", "0001100000", "0011000000", "0110000000", "1100000001", "1000000010", "0000000101", "0000001010", "0000010100", "0000101000", "0001010000", "0010100000", "0101000000", "1010000000", "0100000001", "1000000011", "0000000111", "0000001110", "0000011100", "0000111000", "0001110000", "0011100000", "0111000000", "1110000001", "1100000010", "1000000100", "0000001001", "0000010010", "0000100100", "0001001000", "0010010000", "0100100000", "1001000000", "0010000001", "0100000010", "1000000101", "0000001011", "0000010110", "0000101100", "0001011000", "0010110000", "0101100000", "1011000000", "0110000001", "1100000011", "1000000110", "0000001101", "0000011010", "0000110100", "0001101000", "0011010000", "0110100000", "1101000000", "1010000001", "0100000011", "1000000111", "0000001111", "0000011110", "0000111100", "0001111000", "0011110000", "0111100000", "1111000001", "1110000010", "1100000100", "1000001000", "0000010001", "0000100010", "0001000100", "0010001000", "0100010000", "1000100000", "0001000001", "0010000010", "0100000100", "1000001001", "0000010011", "0000100110", "0001001100", "0010011000", "0100110000", "1001100000", "0011000001", "0110000010", "1100000101", "1000001010", "0000010101", "0000101010", "0001010100", "0010101000", "0101010000", "1010100000", "0101000001", "1010000010", "0100000101", "1000001011", "0000010111", "0000101110", "0001011100", "0010111000", "0101110000", "1011100000", "0111000001", "1110000011", "1100000110", "1000001100", "0000011001", "0000110010", "0001100100", "0011001000", "0110010000", "1100100000", "1001000001", "0010000011", "0100000110", "1000001101", "0000011011", "0000110110", "0001101100", "0011011000", "0110110000", "1101100000", "1011000001", "0110000011", "1100000111", "1000001110", "0000011101", "0000111010", "0001110100", "0011101000", "0111010000", "1110100000", "1101000001", "1010000011", "0100000111", "1000001111", "0000011111", "0000111110", "0001111100", "0011111000", "0111110000", "1111100001", "1111000010", "1110000100", "1100001000", "1000010000", "0000100001", "0001000010", "0010000100", "0100001000", "1000010001", "0000100011", "0001000110", "0010001100", "0100011000", "1000110000", "0001100001", "0011000010", "0110000100", "1100001001", "1000010010", "0000100101", "0001001010", "0010010100", "0100101000", "1001010000", "0010100001", "0101000010", "1010000100", "0100001001", "1000010011", "0000100111", "0001001110", "0010011100", "0100111000", "1001110000", "0011100001", "0111000010", "1110000101", "1100001010", "1000010100", "0000101001", "0001010010", "0010100100", "0101001000", "1010010000", "0100100001", "1001000010", "0010000101", "0100001010", "1000010101", "0000101011", "0001010110", "0010101100", "0101011000", "1010110000", "0101100001", "1011000010", "0110000101", "1100001011", "1000010110", "0000101101", "0001011010", "0010110100", "0101101000", "1011010000", "0110100001", "1101000010", "1010000101", "0100001011", "1000010111", "0000101111", "0001011110", "0010111100", "0101111000", "1011110000", "0111100001", "1111000011", "1110000110", "1100001100", "1000011000", "0000110001", "0001100010", "0011000100", "0110001000", "1100010000", "1000100001", "0001000011", "0010000110", "0100001100", "1000011001", "0000110011", "0001100110", "0011001100", "0110011000", "1100110000", "1001100001", "0011000011", "0110000110", "1100001101", "1000011010", "0000110101", "0001101010", "0011010100", "0110101000", "1101010000", "1010100001", "0101000011", "1010000110", "0100001101", "1000011011", "0000110111", "0001101110", "0011011100", "0110111000", "1101110000", "1011100001", "0111000011", "1110000111", "1100001110", "1000011100", "0000111001", "0001110010", "0011100100", "0111001000", "1110010000", "1100100001", "1001000011", "0010000111", "0100001110", "1000011101", "0000111011", "0001110110", "0011101100", "0111011000", "1110110000", "1101100001", "1011000011", "0110000111", "1100001111", "1000011110", "0000111101", "0001111010", "0011110100", "0111101000", "1111010000", "1110100001", "1101000011", "1010000111", "0100001111", "1000011111", "0000111111", "0001111110", "0011111100", "0111111000", "1111110001", "1111100010", "1111000100", "1110001000", "1100010001", "1000100010", "0001000101", "0010001010", "0100010100", "1000101000", "0001010001", "0010100010", "0101000100", "1010001000", "0100010001", "1000100011", "0001000111", "0010001110", "0100011100", "1000111000", "0001110001", "0011100010", "0111000100", "1110001001", "1100010010", "1000100100", "0001001001", "0010010010", "0100100100", "1001001000", "0010010001", "0100100010", "1001000100", "0010001001", "0100010010", "1000100101", "0001001011", "0010010110", "0100101100", "1001011000", "0010110001", "0101100010", "1011000100", "0110001001", "1100010011", "1000100110", "0001001101", "0010011010", "0100110100", "1001101000", "0011010001", "0110100010", "1101000100", "1010001001", "0100010011", "1000100111", "0001001111", "0010011110", "0100111100", "1001111000", "0011110001", "0111100010", "1111000101", "1110001010", "1100010100", "1000101001", "0001010011", "0010100110", "0101001100", "1010011000", "0100110001", "1001100010", "0011000101", "0110001010", "1100010101", "1000101010", "0001010101", "0010101010", "0101010100", "1010101000", "0101010001", "1010100010", "0101000101", "1010001010", "0100010101", "1000101011", "0001010111", "0010101110", "0101011100", "1010111000", "0101110001", "1011100010", "0111000101", "1110001011", "1100010110", "1000101100", "0001011001", "0010110010", "0101100100", "1011001000", "0110010001", "1100100010", "1001000101", "0010001011", "0100010110", "1000101101", "0001011011", "0010110110", "0101101100", "1011011000", "0110110001", "1101100010", "1011000101", "0110001011", "1100010111", "1000101110", "0001011101", "0010111010", "0101110100", "1011101000", "0111010001", "1110100010", "1101000101", "1010001011", "0100010111", "1000101111", "0001011111", "0010111110", "0101111100", "1011111000", "0111110001", "1111100011", "1111000110", "1110001100", "1100011000", "1000110001", "0001100011", "0011000110", "0110001100", "1100011001", "1000110010", "0001100101", "0011001010", "0110010100", "1100101000", "1001010001", "0010100011", "0101000110", "1010001100", "0100011001", "1000110011", "0001100111", "0011001110", "0110011100", "1100111000", "1001110001", "0011100011", "0111000110", "1110001101", "1100011010", "1000110100", "0001101001", "0011010010", "0110100100", "1101001000", "1010010001", "0100100011", "1001000110", "0010001101", "0100011010", "1000110101", "0001101011", "0011010110", "0110101100", "1101011000", "1010110001", "0101100011", "1011000110", "0110001101", "1100011011", "1000110110", "0001101101", "0011011010", "0110110100", "1101101000", "1011010001", "0110100011", "1101000110", "1010001101", "0100011011", "1000110111", "0001101111", "0011011110", "0110111100", "1101111000", "1011110001", "0111100011", "1111000111", "1110001110", "1100011100", "1000111001", "0001110011", "0011100110", "0111001100", "1110011000", "1100110001", "1001100011", "0011000111", "0110001110", "1100011101", "1000111010", "0001110101", "0011101010", "0111010100", "1110101000", "1101010001", "1010100011", "0101000111", "1010001110", "0100011101", "1000111011", "0001110111", "0011101110", "0111011100", "1110111000", "1101110001", "1011100011", "0111000111", "1110001111", "1100011110", "1000111100", "0001111001", "0011110010", "0111100100", "1111001000", "1110010001", "1100100011", "1001000111", "0010001111", "0100011110", "1000111101", "0001111011", "0011110110", "0111101100", "1111011000", "1110110001", "1101100011", "1011000111", "0110001111", "1100011111", "1000111110", "0001111101", "0011111010", "0111110100", "1111101000", "1111010001", "1110100011", "1101000111", "1010001111", "0100011111", "1000111111", "0001111111", "0011111110", "0111111100", "1111111001", "1111110010", "1111100100", "1111001001", "1110010010", "1100100100", "1001001001", "0010010011", "0100100110", "1001001100", "0010011001", "0100110010", "1001100100", "0011001001", "0110010010", "1100100101", "1001001010", "0010010101", "0100101010", "1001010100", "0010101001", "0101010010", "1010100100", "0101001001", "1010010010", "0100100101", "1001001011", "0010010111", "0100101110", "1001011100", "0010111001", "0101110010", "1011100100", "0111001001", "1110010011", "1100100110", "1001001101", "0010011011", "0100110110", "1001101100", "0011011001", "0110110010", "1101100100", "1011001001", "0110010011", "1100100111", "1001001110", "0010011101", "0100111010", "1001110100", "0011101001", "0111010010", "1110100100", "1101001001", "1010010011", "0100100111", "1001001111", "0010011111", "0100111110", "1001111100", "0011111001", "0111110010", "1111100101", "1111001010", "1110010100", "1100101001", "1001010010", "0010100101", "0101001010", "1010010100", "0100101001", "1001010011", "0010100111", "0101001110", "1010011100", "0100111001", "1001110010", "0011100101", "0111001010", "1110010101", "1100101010", "1001010101", "0010101011", "0101010110", "1010101100", "0101011001", "1010110010", "0101100101", "1011001010", "0110010101", "1100101011", "1001010110", "0010101101", "0101011010", "1010110100", "0101101001", "1011010010", "0110100101", "1101001010", "1010010101", "0100101011", "1001010111", "0010101111", "0101011110", "1010111100", "0101111001", "1011110010", "0111100101", "1111001011", "1110010110", "1100101100", "1001011001", "0010110011", "0101100110", "1011001100", "0110011001", "1100110010", "1001100101", "0011001011", "0110010110", "1100101101", "1001011010", "0010110101", "0101101010", "1011010100", "0110101001", "1101010010", "1010100101", "0101001011", "1010010110", "0100101101", "1001011011", "0010110111", "0101101110", "1011011100", "0110111001", "1101110010", "1011100101", "0111001011", "1110010111", "1100101110", "1001011101", "0010111011", "0101110110", "1011101100", "0111011001", "1110110010", "1101100101", "1011001011", "0110010111", "1100101111", "1001011110", "0010111101", "0101111010", "1011110100", "0111101001", "1111010010", "1110100101", "1101001011", "1010010111", "0100101111", "1001011111", "0010111111", "0101111110", "1011111100", "0111111001", "1111110011", "1111100110", "1111001100", "1110011001", "1100110011", "1001100110", "0011001101", "0110011010", "1100110100", "1001101001", "0011010011", "0110100110", "1101001100", "1010011001", "0100110011", "1001100111", "0011001111", "0110011110", "1100111100", "1001111001", "0011110011", "0111100110", "1111001101", "1110011010", "1100110101", "1001101010", "0011010101", "0110101010", "1101010100", "1010101001", "0101010011", "1010100110", "0101001101", "1010011010", "0100110101", "1001101011", "0011010111", "0110101110", "1101011100", "1010111001", "0101110011", "1011100110", "0111001101", "1110011011", "1100110110", "1001101101", "0011011011", "0110110110", "1101101100", "1011011001", "0110110011", "1101100110", "1011001101", "0110011011", "1100110111", "1001101110", "0011011101", "0110111010", "1101110100", "1011101001", "0111010011", "1110100110", "1101001101", "1010011011", "0100110111", "1001101111", "0011011111", "0110111110", "1101111100", "1011111001", "0111110011", "1111100111", "1111001110", "1110011100", "1100111001", "1001110011", "0011100111", "0111001110", "1110011101", "1100111010", "1001110101", "0011101011", "0111010110", "1110101100", "1101011001", "1010110011", "0101100111", "1011001110", "0110011101", "1100111011", "1001110110", "0011101101", "0111011010", "1110110100", "1101101001", "1011010011", "0110100111", "1101001110", "1010011101", "0100111011", "1001110111", "0011101111", "0111011110", "1110111100", "1101111001", "1011110011", "0111100111", "1111001111", "1110011110", "1100111101", "1001111010", "0011110101", "0111101010", "1111010100", "1110101001", "1101010011", "1010100111", "0101001111", "1010011110", "0100111101", "1001111011", "0011110111", "0111101110", "1111011100", "1110111001", "1101110011", "1011100111", "0111001111", "1110011111", "1100111110", "1001111101", "0011111011", "0111110110", "1111101100", "1111011001", "1110110011", "1101100111", "1011001111", "0110011111", "1100111111", "1001111110", "0011111101", "0111111010", "1111110100", "1111101001", "1111010011", "1110100111", "1101001111", "1010011111", "0100111111", "1001111111", "0011111111", "0111111110", "1111111101", "1111111010", "1111110101", "1111101010", "1111010101", "1110101010", "1101010101", "1010101010", "0101010101", "1010101011", "0101010111", "1010101110", "0101011101", "1010111010", "0101110101", "1011101010", "0111010101", "1110101011", "1101010110", "1010101101", "0101011011", "1010110110", "0101101101", "1011011010", "0110110101", "1101101010", "1011010101", "0110101011", "1101010111", "1010101111", "0101011111", "1010111110", "0101111101", "1011111010", "0111110101", "1111101011", "1111010110", "1110101101", "1101011010", "1010110101", "0101101011", "1011010110", "0110101101", "1101011011", "1010110111", "0101101111", "1011011110", "0110111101", "1101111010", "1011110101", "0111101011", "1111010111", "1110101110", "1101011101", "1010111011", "0101110111", "1011101110", "0111011101", "1110111010", "1101110101", "1011101011", "0111010111", "1110101111", "1101011110", "1010111101", "0101111011", "1011110110", "0111101101", "1111011010", "1110110101", "1101101011", "1011010111", "0110101111", "1101011111", "1010111111", "0101111111", "1011111110", "0111111101", "1111111011", "1111110110", "1111101101", "1111011011", "1110110110", "1101101101", "1011011011", "0110110111", "1101101110", "1011011101", "0110111011", "1101110110", "1011101101", "0111011011", "1110110111", "1101101111", "1011011111", "0110111111", "1101111110", "1011111101", "0111111011", "1111110111", "1111101110", "1111011101", "1110111011", "1101110111", "1011101111", "0111011111", "1110111110" }; const map<str, int> vb_to_int = { {"0000000000", 0}, {"0000000001", 1}, {"0000000010", 2}, {"0000000100", 3}, {"0000001000", 4}, {"0000010000", 5}, {"0000100000", 6}, {"0001000000", 7}, {"0010000000", 8}, {"0100000000", 9}, {"1000000001", 10}, {"0000000011", 11}, {"0000000110", 12}, {"0000001100", 13}, {"0000011000", 14}, {"0000110000", 15}, {"0001100000", 16}, {"0011000000", 17}, {"0110000000", 18}, {"1100000001", 19}, {"1000000010", 20}, {"0000000101", 21}, {"0000001010", 22}, {"0000010100", 23}, {"0000101000", 24}, {"0001010000", 25}, {"0010100000", 26}, {"0101000000", 27}, {"1010000000", 28}, {"0100000001", 29}, {"1000000011", 30}, {"0000000111", 31}, {"0000001110", 32}, {"0000011100", 33}, {"0000111000", 34}, {"0001110000", 35}, {"0011100000", 36}, {"0111000000", 37}, {"1110000001", 38}, {"1100000010", 39}, {"1000000100", 40}, {"0000001001", 41}, {"0000010010", 42}, {"0000100100", 43}, {"0001001000", 44}, {"0010010000", 45}, {"0100100000", 46}, {"1001000000", 47}, {"0010000001", 48}, {"0100000010", 49}, {"1000000101", 50}, {"0000001011", 51}, {"0000010110", 52}, {"0000101100", 53}, {"0001011000", 54}, {"0010110000", 55}, {"0101100000", 56}, {"1011000000", 57}, {"0110000001", 58}, {"1100000011", 59}, {"1000000110", 60}, {"0000001101", 61}, {"0000011010", 62}, {"0000110100", 63}, {"0001101000", 64}, {"0011010000", 65}, {"0110100000", 66}, {"1101000000", 67}, {"1010000001", 68}, {"0100000011", 69}, {"1000000111", 70}, {"0000001111", 71}, {"0000011110", 72}, {"0000111100", 73}, {"0001111000", 74}, {"0011110000", 75}, {"0111100000", 76}, {"1111000001", 77}, {"1110000010", 78}, {"1100000100", 79}, {"1000001000", 80}, {"0000010001", 81}, {"0000100010", 82}, {"0001000100", 83}, {"0010001000", 84}, {"0100010000", 85}, {"1000100000", 86}, {"0001000001", 87}, {"0010000010", 88}, {"0100000100", 89}, {"1000001001", 90}, {"0000010011", 91}, {"0000100110", 92}, {"0001001100", 93}, {"0010011000", 94}, {"0100110000", 95}, {"1001100000", 96}, {"0011000001", 97}, {"0110000010", 98}, {"1100000101", 99}, {"1000001010", 100}, {"0000010101", 101}, {"0000101010", 102}, {"0001010100", 103}, {"0010101000", 104}, {"0101010000", 105}, {"1010100000", 106}, {"0101000001", 107}, {"1010000010", 108}, {"0100000101", 109}, {"1000001011", 110}, {"0000010111", 111}, {"0000101110", 112}, {"0001011100", 113}, {"0010111000", 114}, {"0101110000", 115}, {"1011100000", 116}, {"0111000001", 117}, {"1110000011", 118}, {"1100000110", 119}, {"1000001100", 120}, {"0000011001", 121}, {"0000110010", 122}, {"0001100100", 123}, {"0011001000", 124}, {"0110010000", 125}, {"1100100000", 126}, {"1001000001", 127}, {"0010000011", 128}, {"0100000110", 129}, {"1000001101", 130}, {"0000011011", 131}, {"0000110110", 132}, {"0001101100", 133}, {"0011011000", 134}, {"0110110000", 135}, {"1101100000", 136}, {"1011000001", 137}, {"0110000011", 138}, {"1100000111", 139}, {"1000001110", 140}, {"0000011101", 141}, {"0000111010", 142}, {"0001110100", 143}, {"0011101000", 144}, {"0111010000", 145}, {"1110100000", 146}, {"1101000001", 147}, {"1010000011", 148}, {"0100000111", 149}, {"1000001111", 150}, {"0000011111", 151}, {"0000111110", 152}, {"0001111100", 153}, {"0011111000", 154}, {"0111110000", 155}, {"1111100001", 156}, {"1111000010", 157}, {"1110000100", 158}, {"1100001000", 159}, {"1000010000", 160}, {"0000100001", 161}, {"0001000010", 162}, {"0010000100", 163}, {"0100001000", 164}, {"1000010001", 165}, {"0000100011", 166}, {"0001000110", 167}, {"0010001100", 168}, {"0100011000", 169}, {"1000110000", 170}, {"0001100001", 171}, {"0011000010", 172}, {"0110000100", 173}, {"1100001001", 174}, {"1000010010", 175}, {"0000100101", 176}, {"0001001010", 177}, {"0010010100", 178}, {"0100101000", 179}, {"1001010000", 180}, {"0010100001", 181}, {"0101000010", 182}, {"1010000100", 183}, {"0100001001", 184}, {"1000010011", 185}, {"0000100111", 186}, {"0001001110", 187}, {"0010011100", 188}, {"0100111000", 189}, {"1001110000", 190}, {"0011100001", 191}, {"0111000010", 192}, {"1110000101", 193}, {"1100001010", 194}, {"1000010100", 195}, {"0000101001", 196}, {"0001010010", 197}, {"0010100100", 198}, {"0101001000", 199}, {"1010010000", 200}, {"0100100001", 201}, {"1001000010", 202}, {"0010000101", 203}, {"0100001010", 204}, {"1000010101", 205}, {"0000101011", 206}, {"0001010110", 207}, {"0010101100", 208}, {"0101011000", 209}, {"1010110000", 210}, {"0101100001", 211}, {"1011000010", 212}, {"0110000101", 213}, {"1100001011", 214}, {"1000010110", 215}, {"0000101101", 216}, {"0001011010", 217}, {"0010110100", 218}, {"0101101000", 219}, {"1011010000", 220}, {"0110100001", 221}, {"1101000010", 222}, {"1010000101", 223}, {"0100001011", 224}, {"1000010111", 225}, {"0000101111", 226}, {"0001011110", 227}, {"0010111100", 228}, {"0101111000", 229}, {"1011110000", 230}, {"0111100001", 231}, {"1111000011", 232}, {"1110000110", 233}, {"1100001100", 234}, {"1000011000", 235}, {"0000110001", 236}, {"0001100010", 237}, {"0011000100", 238}, {"0110001000", 239}, {"1100010000", 240}, {"1000100001", 241}, {"0001000011", 242}, {"0010000110", 243}, {"0100001100", 244}, {"1000011001", 245}, {"0000110011", 246}, {"0001100110", 247}, {"0011001100", 248}, {"0110011000", 249}, {"1100110000", 250}, {"1001100001", 251}, {"0011000011", 252}, {"0110000110", 253}, {"1100001101", 254}, {"1000011010", 255}, {"0000110101", 256}, {"0001101010", 257}, {"0011010100", 258}, {"0110101000", 259}, {"1101010000", 260}, {"1010100001", 261}, {"0101000011", 262}, {"1010000110", 263}, {"0100001101", 264}, {"1000011011", 265}, {"0000110111", 266}, {"0001101110", 267}, {"0011011100", 268}, {"0110111000", 269}, {"1101110000", 270}, {"1011100001", 271}, {"0111000011", 272}, {"1110000111", 273}, {"1100001110", 274}, {"1000011100", 275}, {"0000111001", 276}, {"0001110010", 277}, {"0011100100", 278}, {"0111001000", 279}, {"1110010000", 280}, {"1100100001", 281}, {"1001000011", 282}, {"0010000111", 283}, {"0100001110", 284}, {"1000011101", 285}, {"0000111011", 286}, {"0001110110", 287}, {"0011101100", 288}, {"0111011000", 289}, {"1110110000", 290}, {"1101100001", 291}, {"1011000011", 292}, {"0110000111", 293}, {"1100001111", 294}, {"1000011110", 295}, {"0000111101", 296}, {"0001111010", 297}, {"0011110100", 298}, {"0111101000", 299}, {"1111010000", 300}, {"1110100001", 301}, {"1101000011", 302}, {"1010000111", 303}, {"0100001111", 304}, {"1000011111", 305}, {"0000111111", 306}, {"0001111110", 307}, {"0011111100", 308}, {"0111111000", 309}, {"1111110001", 310}, {"1111100010", 311}, {"1111000100", 312}, {"1110001000", 313}, {"1100010001", 314}, {"1000100010", 315}, {"0001000101", 316}, {"0010001010", 317}, {"0100010100", 318}, {"1000101000", 319}, {"0001010001", 320}, {"0010100010", 321}, {"0101000100", 322}, {"1010001000", 323}, {"0100010001", 324}, {"1000100011", 325}, {"0001000111", 326}, {"0010001110", 327}, {"0100011100", 328}, {"1000111000", 329}, {"0001110001", 330}, {"0011100010", 331}, {"0111000100", 332}, {"1110001001", 333}, {"1100010010", 334}, {"1000100100", 335}, {"0001001001", 336}, {"0010010010", 337}, {"0100100100", 338}, {"1001001000", 339}, {"0010010001", 340}, {"0100100010", 341}, {"1001000100", 342}, {"0010001001", 343}, {"0100010010", 344}, {"1000100101", 345}, {"0001001011", 346}, {"0010010110", 347}, {"0100101100", 348}, {"1001011000", 349}, {"0010110001", 350}, {"0101100010", 351}, {"1011000100", 352}, {"0110001001", 353}, {"1100010011", 354}, {"1000100110", 355}, {"0001001101", 356}, {"0010011010", 357}, {"0100110100", 358}, {"1001101000", 359}, {"0011010001", 360}, {"0110100010", 361}, {"1101000100", 362}, {"1010001001", 363}, {"0100010011", 364}, {"1000100111", 365}, {"0001001111", 366}, {"0010011110", 367}, {"0100111100", 368}, {"1001111000", 369}, {"0011110001", 370}, {"0111100010", 371}, {"1111000101", 372}, {"1110001010", 373}, {"1100010100", 374}, {"1000101001", 375}, {"0001010011", 376}, {"0010100110", 377}, {"0101001100", 378}, {"1010011000", 379}, {"0100110001", 380}, {"1001100010", 381}, {"0011000101", 382}, {"0110001010", 383}, {"1100010101", 384}, {"1000101010", 385}, {"0001010101", 386}, {"0010101010", 387}, {"0101010100", 388}, {"1010101000", 389}, {"0101010001", 390}, {"1010100010", 391}, {"0101000101", 392}, {"1010001010", 393}, {"0100010101", 394}, {"1000101011", 395}, {"0001010111", 396}, {"0010101110", 397}, {"0101011100", 398}, {"1010111000", 399}, {"0101110001", 400}, {"1011100010", 401}, {"0111000101", 402}, {"1110001011", 403}, {"1100010110", 404}, {"1000101100", 405}, {"0001011001", 406}, {"0010110010", 407}, {"0101100100", 408}, {"1011001000", 409}, {"0110010001", 410}, {"1100100010", 411}, {"1001000101", 412}, {"0010001011", 413}, {"0100010110", 414}, {"1000101101", 415}, {"0001011011", 416}, {"0010110110", 417}, {"0101101100", 418}, {"1011011000", 419}, {"0110110001", 420}, {"1101100010", 421}, {"1011000101", 422}, {"0110001011", 423}, {"1100010111", 424}, {"1000101110", 425}, {"0001011101", 426}, {"0010111010", 427}, {"0101110100", 428}, {"1011101000", 429}, {"0111010001", 430}, {"1110100010", 431}, {"1101000101", 432}, {"1010001011", 433}, {"0100010111", 434}, {"1000101111", 435}, {"0001011111", 436}, {"0010111110", 437}, {"0101111100", 438}, {"1011111000", 439}, {"0111110001", 440}, {"1111100011", 441}, {"1111000110", 442}, {"1110001100", 443}, {"1100011000", 444}, {"1000110001", 445}, {"0001100011", 446}, {"0011000110", 447}, {"0110001100", 448}, {"1100011001", 449}, {"1000110010", 450}, {"0001100101", 451}, {"0011001010", 452}, {"0110010100", 453}, {"1100101000", 454}, {"1001010001", 455}, {"0010100011", 456}, {"0101000110", 457}, {"1010001100", 458}, {"0100011001", 459}, {"1000110011", 460}, {"0001100111", 461}, {"0011001110", 462}, {"0110011100", 463}, {"1100111000", 464}, {"1001110001", 465}, {"0011100011", 466}, {"0111000110", 467}, {"1110001101", 468}, {"1100011010", 469}, {"1000110100", 470}, {"0001101001", 471}, {"0011010010", 472}, {"0110100100", 473}, {"1101001000", 474}, {"1010010001", 475}, {"0100100011", 476}, {"1001000110", 477}, {"0010001101", 478}, {"0100011010", 479}, {"1000110101", 480}, {"0001101011", 481}, {"0011010110", 482}, {"0110101100", 483}, {"1101011000", 484}, {"1010110001", 485}, {"0101100011", 486}, {"1011000110", 487}, {"0110001101", 488}, {"1100011011", 489}, {"1000110110", 490}, {"0001101101", 491}, {"0011011010", 492}, {"0110110100", 493}, {"1101101000", 494}, {"1011010001", 495}, {"0110100011", 496}, {"1101000110", 497}, {"1010001101", 498}, {"0100011011", 499}, {"1000110111", 500}, {"0001101111", 501}, {"0011011110", 502}, {"0110111100", 503}, {"1101111000", 504}, {"1011110001", 505}, {"0111100011", 506}, {"1111000111", 507}, {"1110001110", 508}, {"1100011100", 509}, {"1000111001", 510}, {"0001110011", 511}, {"0011100110", 512}, {"0111001100", 513}, {"1110011000", 514}, {"1100110001", 515}, {"1001100011", 516}, {"0011000111", 517}, {"0110001110", 518}, {"1100011101", 519}, {"1000111010", 520}, {"0001110101", 521}, {"0011101010", 522}, {"0111010100", 523}, {"1110101000", 524}, {"1101010001", 525}, {"1010100011", 526}, {"0101000111", 527}, {"1010001110", 528}, {"0100011101", 529}, {"1000111011", 530}, {"0001110111", 531}, {"0011101110", 532}, {"0111011100", 533}, {"1110111000", 534}, {"1101110001", 535}, {"1011100011", 536}, {"0111000111", 537}, {"1110001111", 538}, {"1100011110", 539}, {"1000111100", 540}, {"0001111001", 541}, {"0011110010", 542}, {"0111100100", 543}, {"1111001000", 544}, {"1110010001", 545}, {"1100100011", 546}, {"1001000111", 547}, {"0010001111", 548}, {"0100011110", 549}, {"1000111101", 550}, {"0001111011", 551}, {"0011110110", 552}, {"0111101100", 553}, {"1111011000", 554}, {"1110110001", 555}, {"1101100011", 556}, {"1011000111", 557}, {"0110001111", 558}, {"1100011111", 559}, {"1000111110", 560}, {"0001111101", 561}, {"0011111010", 562}, {"0111110100", 563}, {"1111101000", 564}, {"1111010001", 565}, {"1110100011", 566}, {"1101000111", 567}, {"1010001111", 568}, {"0100011111", 569}, {"1000111111", 570}, {"0001111111", 571}, {"0011111110", 572}, {"0111111100", 573}, {"1111111001", 574}, {"1111110010", 575}, {"1111100100", 576}, {"1111001001", 577}, {"1110010010", 578}, {"1100100100", 579}, {"1001001001", 580}, {"0010010011", 581}, {"0100100110", 582}, {"1001001100", 583}, {"0010011001", 584}, {"0100110010", 585}, {"1001100100", 586}, {"0011001001", 587}, {"0110010010", 588}, {"1100100101", 589}, {"1001001010", 590}, {"0010010101", 591}, {"0100101010", 592}, {"1001010100", 593}, {"0010101001", 594}, {"0101010010", 595}, {"1010100100", 596}, {"0101001001", 597}, {"1010010010", 598}, {"0100100101", 599}, {"1001001011", 600}, {"0010010111", 601}, {"0100101110", 602}, {"1001011100", 603}, {"0010111001", 604}, {"0101110010", 605}, {"1011100100", 606}, {"0111001001", 607}, {"1110010011", 608}, {"1100100110", 609}, {"1001001101", 610}, {"0010011011", 611}, {"0100110110", 612}, {"1001101100", 613}, {"0011011001", 614}, {"0110110010", 615}, {"1101100100", 616}, {"1011001001", 617}, {"0110010011", 618}, {"1100100111", 619}, {"1001001110", 620}, {"0010011101", 621}, {"0100111010", 622}, {"1001110100", 623}, {"0011101001", 624}, {"0111010010", 625}, {"1110100100", 626}, {"1101001001", 627}, {"1010010011", 628}, {"0100100111", 629}, {"1001001111", 630}, {"0010011111", 631}, {"0100111110", 632}, {"1001111100", 633}, {"0011111001", 634}, {"0111110010", 635}, {"1111100101", 636}, {"1111001010", 637}, {"1110010100", 638}, {"1100101001", 639}, {"1001010010", 640}, {"0010100101", 641}, {"0101001010", 642}, {"1010010100", 643}, {"0100101001", 644}, {"1001010011", 645}, {"0010100111", 646}, {"0101001110", 647}, {"1010011100", 648}, {"0100111001", 649}, {"1001110010", 650}, {"0011100101", 651}, {"0111001010", 652}, {"1110010101", 653}, {"1100101010", 654}, {"1001010101", 655}, {"0010101011", 656}, {"0101010110", 657}, {"1010101100", 658}, {"0101011001", 659}, {"1010110010", 660}, {"0101100101", 661}, {"1011001010", 662}, {"0110010101", 663}, {"1100101011", 664}, {"1001010110", 665}, {"0010101101", 666}, {"0101011010", 667}, {"1010110100", 668}, {"0101101001", 669}, {"1011010010", 670}, {"0110100101", 671}, {"1101001010", 672}, {"1010010101", 673}, {"0100101011", 674}, {"1001010111", 675}, {"0010101111", 676}, {"0101011110", 677}, {"1010111100", 678}, {"0101111001", 679}, {"1011110010", 680}, {"0111100101", 681}, {"1111001011", 682}, {"1110010110", 683}, {"1100101100", 684}, {"1001011001", 685}, {"0010110011", 686}, {"0101100110", 687}, {"1011001100", 688}, {"0110011001", 689}, {"1100110010", 690}, {"1001100101", 691}, {"0011001011", 692}, {"0110010110", 693}, {"1100101101", 694}, {"1001011010", 695}, {"0010110101", 696}, {"0101101010", 697}, {"1011010100", 698}, {"0110101001", 699}, {"1101010010", 700}, {"1010100101", 701}, {"0101001011", 702}, {"1010010110", 703}, {"0100101101", 704}, {"1001011011", 705}, {"0010110111", 706}, {"0101101110", 707}, {"1011011100", 708}, {"0110111001", 709}, {"1101110010", 710}, {"1011100101", 711}, {"0111001011", 712}, {"1110010111", 713}, {"1100101110", 714}, {"1001011101", 715}, {"0010111011", 716}, {"0101110110", 717}, {"1011101100", 718}, {"0111011001", 719}, {"1110110010", 720}, {"1101100101", 721}, {"1011001011", 722}, {"0110010111", 723}, {"1100101111", 724}, {"1001011110", 725}, {"0010111101", 726}, {"0101111010", 727}, {"1011110100", 728}, {"0111101001", 729}, {"1111010010", 730}, {"1110100101", 731}, {"1101001011", 732}, {"1010010111", 733}, {"0100101111", 734}, {"1001011111", 735}, {"0010111111", 736}, {"0101111110", 737}, {"1011111100", 738}, {"0111111001", 739}, {"1111110011", 740}, {"1111100110", 741}, {"1111001100", 742}, {"1110011001", 743}, {"1100110011", 744}, {"1001100110", 745}, {"0011001101", 746}, {"0110011010", 747}, {"1100110100", 748}, {"1001101001", 749}, {"0011010011", 750}, {"0110100110", 751}, {"1101001100", 752}, {"1010011001", 753}, {"0100110011", 754}, {"1001100111", 755}, {"0011001111", 756}, {"0110011110", 757}, {"1100111100", 758}, {"1001111001", 759}, {"0011110011", 760}, {"0111100110", 761}, {"1111001101", 762}, {"1110011010", 763}, {"1100110101", 764}, {"1001101010", 765}, {"0011010101", 766}, {"0110101010", 767}, {"1101010100", 768}, {"1010101001", 769}, {"0101010011", 770}, {"1010100110", 771}, {"0101001101", 772}, {"1010011010", 773}, {"0100110101", 774}, {"1001101011", 775}, {"0011010111", 776}, {"0110101110", 777}, {"1101011100", 778}, {"1010111001", 779}, {"0101110011", 780}, {"1011100110", 781}, {"0111001101", 782}, {"1110011011", 783}, {"1100110110", 784}, {"1001101101", 785}, {"0011011011", 786}, {"0110110110", 787}, {"1101101100", 788}, {"1011011001", 789}, {"0110110011", 790}, {"1101100110", 791}, {"1011001101", 792}, {"0110011011", 793}, {"1100110111", 794}, {"1001101110", 795}, {"0011011101", 796}, {"0110111010", 797}, {"1101110100", 798}, {"1011101001", 799}, {"0111010011", 800}, {"1110100110", 801}, {"1101001101", 802}, {"1010011011", 803}, {"0100110111", 804}, {"1001101111", 805}, {"0011011111", 806}, {"0110111110", 807}, {"1101111100", 808}, {"1011111001", 809}, {"0111110011", 810}, {"1111100111", 811}, {"1111001110", 812}, {"1110011100", 813}, {"1100111001", 814}, {"1001110011", 815}, {"0011100111", 816}, {"0111001110", 817}, {"1110011101", 818}, {"1100111010", 819}, {"1001110101", 820}, {"0011101011", 821}, {"0111010110", 822}, {"1110101100", 823}, {"1101011001", 824}, {"1010110011", 825}, {"0101100111", 826}, {"1011001110", 827}, {"0110011101", 828}, {"1100111011", 829}, {"1001110110", 830}, {"0011101101", 831}, {"0111011010", 832}, {"1110110100", 833}, {"1101101001", 834}, {"1011010011", 835}, {"0110100111", 836}, {"1101001110", 837}, {"1010011101", 838}, {"0100111011", 839}, {"1001110111", 840}, {"0011101111", 841}, {"0111011110", 842}, {"1110111100", 843}, {"1101111001", 844}, {"1011110011", 845}, {"0111100111", 846}, {"1111001111", 847}, {"1110011110", 848}, {"1100111101", 849}, {"1001111010", 850}, {"0011110101", 851}, {"0111101010", 852}, {"1111010100", 853}, {"1110101001", 854}, {"1101010011", 855}, {"1010100111", 856}, {"0101001111", 857}, {"1010011110", 858}, {"0100111101", 859}, {"1001111011", 860}, {"0011110111", 861}, {"0111101110", 862}, {"1111011100", 863}, {"1110111001", 864}, {"1101110011", 865}, {"1011100111", 866}, {"0111001111", 867}, {"1110011111", 868}, {"1100111110", 869}, {"1001111101", 870}, {"0011111011", 871}, {"0111110110", 872}, {"1111101100", 873}, {"1111011001", 874}, {"1110110011", 875}, {"1101100111", 876}, {"1011001111", 877}, {"0110011111", 878}, {"1100111111", 879}, {"1001111110", 880}, {"0011111101", 881}, {"0111111010", 882}, {"1111110100", 883}, {"1111101001", 884}, {"1111010011", 885}, {"1110100111", 886}, {"1101001111", 887}, {"1010011111", 888}, {"0100111111", 889}, {"1001111111", 890}, {"0011111111", 891}, {"0111111110", 892}, {"1111111101", 893}, {"1111111010", 894}, {"1111110101", 895}, {"1111101010", 896}, {"1111010101", 897}, {"1110101010", 898}, {"1101010101", 899}, {"1010101010", 900}, {"0101010101", 901}, {"1010101011", 902}, {"0101010111", 903}, {"1010101110", 904}, {"0101011101", 905}, {"1010111010", 906}, {"0101110101", 907}, {"1011101010", 908}, {"0111010101", 909}, {"1110101011", 910}, {"1101010110", 911}, {"1010101101", 912}, {"0101011011", 913}, {"1010110110", 914}, {"0101101101", 915}, {"1011011010", 916}, {"0110110101", 917}, {"1101101010", 918}, {"1011010101", 919}, {"0110101011", 920}, {"1101010111", 921}, {"1010101111", 922}, {"0101011111", 923}, {"1010111110", 924}, {"0101111101", 925}, {"1011111010", 926}, {"0111110101", 927}, {"1111101011", 928}, {"1111010110", 929}, {"1110101101", 930}, {"1101011010", 931}, {"1010110101", 932}, {"0101101011", 933}, {"1011010110", 934}, {"0110101101", 935}, {"1101011011", 936}, {"1010110111", 937}, {"0101101111", 938}, {"1011011110", 939}, {"0110111101", 940}, {"1101111010", 941}, {"1011110101", 942}, {"0111101011", 943}, {"1111010111", 944}, {"1110101110", 945}, {"1101011101", 946}, {"1010111011", 947}, {"0101110111", 948}, {"1011101110", 949}, {"0111011101", 950}, {"1110111010", 951}, {"1101110101", 952}, {"1011101011", 953}, {"0111010111", 954}, {"1110101111", 955}, {"1101011110", 956}, {"1010111101", 957}, {"0101111011", 958}, {"1011110110", 959}, {"0111101101", 960}, {"1111011010", 961}, {"1110110101", 962}, {"1101101011", 963}, {"1011010111", 964}, {"0110101111", 965}, {"1101011111", 966}, {"1010111111", 967}, {"0101111111", 968}, {"1011111110", 969}, {"0111111101", 970}, {"1111111011", 971}, {"1111110110", 972}, {"1111101101", 973}, {"1111011011", 974}, {"1110110110", 975}, {"1101101101", 976}, {"1011011011", 977}, {"0110110111", 978}, {"1101101110", 979}, {"1011011101", 980}, {"0110111011", 981}, {"1101110110", 982}, {"1011101101", 983}, {"0111011011", 984}, {"1110110111", 985}, {"1101101111", 986}, {"1011011111", 987}, {"0110111111", 988}, {"1101111110", 989}, {"1011111101", 990}, {"0111111011", 991}, {"1111110111", 992}, {"1111101110", 993}, {"1111011101", 994}, {"1110111011", 995}, {"1101110111", 996}, {"1011101111", 997}, {"0111011111", 998}, {"1110111110", 999} }; vi paint(int n) { vi labels(n+1, 0); labels.back() = k; for (int i = 0; i < n; i++){ if (i%10 == 0){ for (int j = i; j < min(i+10, n); j++){ labels.at(j) = ind_to_vb.at(i).at(j-i)-'0'; } } } return labels; } int find_location(int n, vi c) { // assert((int)c.size() == k); ////////////////////// if (find(all(c), -1) != c.end()){ return n-(find(all(c), -1)-c.begin()); } str curr; for (auto &i:c){ curr.push_back(i+'0'); } return vb_to_int.at(curr); } /* static int max_k = 0; static int r, n, k_, q, x; static std::vector<int> labels, c, answers; int main() { assert(scanf("%d", &r) == 1); for (int tc = 0; tc < r; tc++) { assert(scanf("%d%d", &n, &q) == 2); labels = paint(n); if ((int)labels.size() != n + 1) { printf("Number of labels not equal to %d\n", n + 1); exit(0); } for (int i = 0; i < n; i++) { if (labels[i] != 0 && labels[i] != 1) { printf("Label not 0 or 1\n"); exit(0); } } k_ = labels[n]; if (k_ < 0 || k_ > 1000) { printf("Label not in range 0 to 1000\n"); exit(0); } if (k > max_k) { max_k = k_; } for (int i = 0; i < q; i++) { assert(scanf("%d", &x) == 1); c.clear(); for (int j = x; j < x + k_; j++) { if (j >= n) { c.push_back(-1); } else { c.push_back(labels[j]); } } answers.push_back(find_location(n, c)); printf("x: %d\n", x); assert(answers.back() == x); } } printf("%d\n", max_k); for (int ans : answers) { printf("%d\n", ans); } exit(0); } */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...