Submission #738254

#TimeUsernameProblemLanguageResultExecution timeMemory
738254NeroZeinVision Program (IOI19_vision)C++17
44 / 100
1086 ms9124 KiB
#include "vision.h" #include <bits/stdc++.h> using namespace std; int n, m; void construct_network(int H, int W, int K) { n = H, m = W; auto dis = [&](int i, int j, int ii, int jj) { return abs(ii - i) + abs(jj - j); }; vector<vector<int>> g(n * m); for (int i = 0; i < n; ++i) { for (int j = 0; j < m; ++j) { for (int ii = 0; ii < n; ++ii) { for (int jj = 0; jj < m; ++jj) { if (dis(i, j, ii, jj) == K) { g[i * m + j].push_back(ii * m + jj); } } } } } int cur = n * m; vector<int> ask; for (int i = 0; i < n; ++i) { for (int j = 0; j < m; ++j) { int num = i * m + j; if (g[num].empty()) continue; sort(g[num].begin(), g[num].end()); add_xor(g[num]); int fi = cur++; g[num].push_back(num); sort(g[num].begin(), g[num].end()); add_xor(g[num]); int se = cur++; add_not(se); int th = cur++; vector<int> v = {fi, th}; add_and(v); int fo = cur++; ask.push_back(fo); } } add_or(ask); }
#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...