제출 #1050522

#제출 시각아이디문제언어결과실행 시간메모리
1050522Onur_IlgazVision Program (IOI19_vision)C++17
44 / 100
10 ms3028 KiB
#include "vision.h" #include <bits/stdc++.h> using namespace std; void construct_network(int H, int W, int K) { auto dist = [&](pair<int, int> a, pair<int, int> b) { return abs(a.first - b.first) + abs(a.second - b.second); }; auto toint = [&](pair<int,int> a) { return a.first * W + a.second; }; vector <pair<int, int> > v = {{0,0}, {0, W - 1}, {H - 1, 0}, {H - 1, W - 1}}; int cnt = 0; vector <int> yesyes; for(int i = 0; i < H; i++) { for(int j = 0; j < W; j++) { int mn = 0; for(auto it:v) { mn = max(mn, dist({i, j}, it)); } if(mn < K) continue; vector <int> baklava; for(auto signi : {1, -1}) { for(auto signj : {1, -1}) { for(int addi = K; addi >= 0; addi--) { int addj = K - addi; int ni = i + addi * signi, nj = j + addj * signj; if(min(ni, nj) >= 0 and ni < H and nj < W) baklava.push_back(toint({ni ,nj})); } } } sort(baklava.begin(), baklava.end()); auto last = unique(v.begin(), v.end()); v.erase(last, v.end()); // for(auto it:baklava) { // cout << it << " "; // } // cout << ".\n"; int l = add_or(baklava); vector <int> hallo = {l, toint({i, j})}; yesyes.push_back(add_and(hallo)); cnt++; } } add_or(yesyes); }
#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...