제출 #306987

#제출 시각아이디문제언어결과실행 시간메모리
306987phathnvPainting Squares (IOI20_squares)C++14
100 / 100
155 ms468 KiB
#include <bits/stdc++.h> #include "squares.h" using namespace std; string s = "0000000000100001000001000100000010010001001001000000010100100001010001000101000010010100101000001010100100101010001010101010000000011010000001100100000110001000011010100001100001000110100100011001010001100011000001001101000100110010010011000101001101010100110000110011010011001100000010110100001011001000101100010010110101001011001100101100001010110100101011001010101100011010110101100000110110100011011001001101100010110110101011011001101101100000001110100000111001000011101100001110001000111010100011100110001110000100111010010011100101001110110100111000110011101011001110011100000101110100010111001001011101100101110001010111010101011100110101110000110111010011011100101101110110110111000111011101011101110000001111010000111100100011110110001111000100111101010011110011001111011100111100001011110100101111001010111101101011110001101111010110111100111011110111100000111110100011111001001111101100111110001011111010101111100110111110111011111000011111101001111110010111111011011111100011111110101111111001111111101111111111"; vector <int> paint(int n){ vector <int> res; for(int i = 0; i < n; i++) res.push_back(s[i] - '0'); res.push_back(10); return res; } int find_location(int n, vector <int> c){ while (c.back() == -1) c.pop_back(); if (c.size() != 10) return n - (int) c.size(); int expected = 0; for(int x : c){ expected <<= 1; if (x != -1) expected |= x; } int cur = 0; for(int i = 0; i < n + 9; i++){ cur <<= 1; if (i < n) cur |= (s[i] - '0'); cur &= (1 << 10) - 1; if (cur == expected && i >= 9) return i - 9; } return 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...