제출 #600341

#제출 시각아이디문제언어결과실행 시간메모리
600341MohamedFaresNebiliVision Program (IOI19_vision)C++14
44 / 100
195 ms39336 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 ld = long double; 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 const int MOD = 1e9 + 7; int calc(int x, int y, int W) { return x * W + y; } int dist(int x, int y, int X, int Y) { return abs(x - X) + abs(y - Y); } map<int, int> V[40000]; void construct_network(int H, int W, int K) { vector<int> res; for(int l = 0; l < H; l++) { for(int i = 0; i < W; i++) { vector<int> S; for(int j = -K; j <= K; j++) { int k = K - abs(j); if(l + k >= 0 && l + k < H && i + j >= 0 && i + j < W) { if(V[calc(l, i, W)][calc(l + k, i + j, W)]) continue; V[calc(l, i, W)][calc(l + k, i + j, W)] = V[calc(l + k, i + j, W)][calc(l, i, W)] = 1; S.push_back(calc(l + k, i + j, W)); } } if(S.empty()) continue; res.push_back(add_and({calc(l, i, W), add_or(S)})); } } 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...