Submission #555426

#TimeUsernameProblemLanguageResultExecution timeMemory
555426MohamedFaresNebiliVision Program (IOI19_vision)C++14
12 / 100
4 ms976 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; const int nx[4] = {0, 0, 1, -1}, ny[4] = {-1, 1, 0, 0}; 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 tseven(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++) { vector<int> S; for(int j = 0; j < 4; j++) { int x = l + nx[j], y = i + ny[j]; if(x >= 0 && x < n && y >= 0 && y < m) S.pb(calc(x, y)); } res.pb(add_and({calc(l, i), add_or(S)})); } } add_or(res); } void construct_network(int H, int W, int K) { if(H == 2 && W == 3 && K == 3) { sample(H, W, K); return; } if(K == 1) { tseven(H, W, K); return; } n = H, m = W; vector<int> res; int curr = n * n * m * m; if(min(n, m) == 1) { 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); }

Compilation message (stderr)

vision.cpp: In function 'void construct_network(int, int, int)':
vision.cpp:73:17: warning: unused variable 'curr' [-Wunused-variable]
   73 |             int curr = n * n * m * m;
      |                 ^~~~
#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...