제출 #316552

#제출 시각아이디문제언어결과실행 시간메모리
316552talant117408Vision Program (IOI19_vision)C++17
100 / 100
75 ms5876 KiB
#include "vision.h" #ifdef EVAL #else #include "grader.cpp" #endif #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair <int, int> pii; #define precision(n) fixed << setprecision(n) #define pb push_back #define ub upper_bound #define lb lower_bound #define mp make_pair #define eps (double)1e-9 #define PI 2*acos(0.0) #define endl "\n" #define sz(v) int((v).size()) #define all(v) v.begin(),v.end() #define rall(v) v.rbegin(),v.rend() #define do_not_disturb ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define OK cout << "OK" << endl; int n, m; int generate(int dist){ vector <vector <int>> elem1(403), elem2(403); int i, j; for(i = 0; i < n; i++){ for(j = 0; j < m; j++){ elem1[i+j].pb(i*m+j); elem2[i-j+m-1].pb(i*m+j); } } vector <int> ans, rdiag, ldiag, prefr, prefl; for(i = 0; i < n+m-1; i++){ rdiag.pb(add_or(elem1[i])); ldiag.pb(add_or(elem2[i])); prefr.pb(add_or(rdiag)); prefl.pb(add_or(ldiag)); if(i >= dist){ ans.pb(add_and({rdiag[i], prefr[i-dist]})); ans.pb(add_and({ldiag[i], prefl[i-dist]})); } } return add_or(ans); } void construct_network(int h, int w, int dist) { n = h; m = w; if(n+m-2 == dist){ add_xor({generate(dist)}); } else{ add_xor({generate(dist), generate(dist+1)}); } }
#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...