Submission #602860

#TimeUsernameProblemLanguageResultExecution timeMemory
602860AriaHVision Program (IOI19_vision)C++17
58 / 100
17 ms1948 KiB
#include "vision.h" #pragma GCC optimize("O3") #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; typedef pair < int, int > pii; typedef pair < ll, ll > pll; #define F first #define S second #define all(x) x.begin(), x.end() #define SZ(x) (int)x.size() #define Mp make_pair #define endl "\n" #define fast_io ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); const int N = 2e2 + 10; const int LOG = 20; const ll mod = 1e9 + 7; const ll inf = 8e18; int n, m, k; inline int id(int i, int j) { return i * m + j; } int rowOr[N], rowXor[N], colOr[N], colXor[N], disX[N], disY[N]; vector < int > opt; void construct_network(int _n, int _m, int _k) { n = _n; m = _m; k = _k; for(int i = 0; i < n; i ++) { vector < int > now; for(int j = 0; j < m; j ++) { now.push_back(id(i, j)); } rowOr[i] = add_or(now); rowXor[i] = add_xor(now); } for(int j = 0; j < m; j ++) { vector < int > now; for(int i = 0; i < n; i ++) { now.push_back(id(i, j)); } colOr[j] = add_or(now); colXor[j] = add_xor(now); } for(int dx = max(0, k - (m - 1)); dx <= min(n - 1, k); dx ++) { vector < int > now; for(int i = 0; i < n - dx; i ++) { if(dx == 0) { now.push_back(add_xor({rowOr[i], rowXor[i]})); } else { now.push_back(add_and({rowOr[i], rowOr[i + dx]})); } } disX[dx] = add_or(now); } for(int dy = max(0, k - (n - 1)); dy <= min(m - 1, k); dy ++) { vector < int > now; for(int i = 0; i < m - dy; i ++) { if(dy == 0) { now.push_back(add_xor({colOr[i], colXor[i]})); } else { now.push_back(add_and({colOr[i], colOr[i + dy]})); } } disY[dy] = add_or(now); } for(int dx = max(0, k - (m - 1)); dx <= min(n - 1, k); dx ++) { int dy = k - dx; opt.push_back(add_and({disX[dx], disY[dy]})); } add_or(opt); }
#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...