Submission #226562

#TimeUsernameProblemLanguageResultExecution timeMemory
226562staniewzkiVision Program (IOI19_vision)C++17
100 / 100
74 ms7028 KiB
#include<bits/stdc++.h> using namespace std; #define REP(i, n) for(int i = 0; i < n; i++) #include "vision.h" void construct_network(int H, int W, int K) { auto construct = [&](int k, auto get_id) { int s = H + W - 1; vector<int> a(s), b(s); REP(i, s) { int x = min(i, H - 1); int y = i - x; vector<int> diag; for(; x >= 0 && y < W; x--, y++) diag.emplace_back(get_id(x, y)); a[i] = add_or(diag); b[i] = add_xor(diag); } vector<int> r; REP(i, s - k) { vector<int> p, q; REP(j, k + 1) { p.emplace_back(a[i + j]); q.emplace_back(b[i + j]); } int x = add_xor({add_or(p), add_xor(q)}); r.emplace_back(x); } return add_or(r); }; auto check = [&](int k) { int a = construct(k, [&](int x, int y) { return x * W + y; }); int b = construct(k, [&](int x, int y) { return x * W + W - 1 - y; }); return add_and({a, b}); }; add_xor({check(K), check(K - 1)}); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...