제출 #1168015

#제출 시각아이디문제언어결과실행 시간메모리
1168015rxlfd314Vision Program (IOI19_vision)C++17
100 / 100
39 ms7364 KiB
#include "vision.h" #include <bits/stdc++.h> using namespace std; using ll = long long; using ari2 = array<int, 2>; using ari3 = array<int, 3>; using arl2 = array<ll, 2>; using arl3 = array<ll, 3>; template <class T> using vt = vector<T>; #define size(x) (int((x).size())) #define all(x) begin(x), end(x) #define REP(a,b,c,d) for(int a=(b);(d)>0?a<=(c):a>=(c);a+=(d)) #define FOR(a,b,c) REP(a,b,c,1) #define ROF(a,b,c) REP(a,b,c,-1) void construct_network(int H, int W, int K) { auto yeet = [&](const int k) { vt<vt<int>> diag1(H+W-1), diag2(H+W-1); FOR(i, 0, H-1) FOR(j, 0, W-1) { diag1[i+j].push_back(i*W + j); diag2[i-j+W-1].push_back(i*W + j); } vt<int> d1, d2, tot; FOR(i, k, H+W-2) { d1.push_back(add_or(diag1[i-k])); d2.push_back(add_or(diag2[i-k])); tot.push_back(add_and({add_or(diag1[i]), add_or(d1)})); tot.push_back(add_and({add_or(diag2[i]), add_or(d2)})); } return add_or(tot); }; if (K == H + W - 2) yeet(K); else add_and({yeet(K), add_not(yeet(K+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...