Submission #1169432

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