Submission #1169230

#TimeUsernameProblemLanguageResultExecution timeMemory
1169230owieczkaPainting Squares (IOI20_squares)C++20
45 / 100
28 ms420 KiB
#include "squares.h" #include <bits/stdc++.h> std::vector<int> paint(int n) { std::vector<int> labels(n + 1, 0); int a = 8; int prz = 2 * a + 1; // jeden prz takiej dl labels[n] = 40; for (int i = 0; i < n; i++) { int j = i % prz; int id = i / prz; if (j < a)labels[i] = 1; else if (j == a || j == 2*a)labels[i] = 0; else { if (id & (1 << (j - a-1))) { labels[i] = 1; } else { labels[i] = 0; } } } return labels; } int find_location(int n, std::vector<int> c) { int a = 8; int prz = 2*a+1; // for (int i = 0; i < c.size(); i++) // { // // std::cerr << c[i]; // } // std::cerr << '\n'; for (int i = 0; i < c.size(); i++) { if (c[i] == -1) { return n - i; } } int con1 = 0; int fn = 0; for (; fn < c.size(); fn++) { if (c[fn] == 1)con1++; else con1=0; if (con1 == a)//i+1 == 0 a dalej mamy liczbe { break; } } fn += 2;//poczatek numeru przedziału // if () int x = 0; for (int i = 0; i < a-1; i++) { if (c[fn + i]) { x += 1 << i; } } //jestem w xtym przedziale fn -= a+1; return x * prz - fn; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...