Submission #555419

#TimeUsernameProblemLanguageResultExecution timeMemory
555419MohamedFaresNebiliVision Program (IOI19_vision)C++14
0 / 100
1080 ms1572 KiB
#include <bits/stdc++.h> #include "vision.h" /// #pragma GCC optimize ("Ofast") /// #pragma GCC target ("avx2") /// #pragma GCC optimize("unroll-loops") using namespace std; using ll = long long; using ii = pair<ll, ll>; using vi = vector<int>; #define ff first #define ss second #define pb push_back #define all(x) (x).begin(), (x).end() #define lb lower_bound /// #define int ll const int oo = 1e9 + 7; int n, m; map<ii, int> vis; int calc(int x, int y) { return x * m + y; } int dist(int x, int y, int xx, int yy) { return abs(x - xx) + abs(y - yy); } void sample(int H, int W, int K) { n = H, m = W; vector<int> res; for(int l = 0; l < n; l++) { for(int i = 0; i < m; i++) { for(int j = 0; j < n; j++) { for(int k = 0; k < m; k++) { int d = dist(l, i, j, k); int a = calc(l, i), b = calc(j, k); if(a > b) swap(a, b); if(d == K && !vis.count({a, b})) { res.pb(add_and({a, b})); vis[{a, b}] = 1; } } } } } add_or(res); } void construct_network(int H, int W, int K) { if(H == 2 && W == 3 && K == 3) { sample(H, W, K); return; } n = H, m = W; vector<int> res; int curr = 0; for(int l = 0; l < n; l++) { for(int i = 0; i < m; i++) { for(int j = 0; j < n; j++) { for(int k = 0; k < m; k++) { int d = dist(l, i, j, k); if(d == K) curr++; } } } } curr /= 2; if(curr > 10000) { sample(H, W, K); return; } for(int l = 0; l < n; l++) { for(int i = 0; i < m; i++) { if(l + i == K) { res.pb(add_and({0, calc(l, i)})); } } } add_or(res); }
#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...