Submission #823840

#TimeUsernameProblemLanguageResultExecution timeMemory
823840vjudge1Vision Program (IOI19_vision)C++17
12 / 100
10 ms1616 KiB
#include<bits/stdc++.h> #include "vision.h" using namespace std; void construct_network(int H, int W, int K) { int cur = H * W; if(K == 1) { for(int i = 0; i < H; i++) { vector<int> Ns; for(int j = 0; j < W; j++) Ns.push_back(i * W + j); add_xor(Ns); cur++; } vector<int> Ns; for(int i = 0; i < H; i++) { for(int j = 0; j < W; j++) { Ns.push_back(i * W + j); } } add_xor(Ns); cur++; Ns.clear(); for(int j = 0; j < W; j++) { vector<int> Ns; for(int i = 0; i < H; i++) { Ns.push_back(i * W + j); } add_xor(Ns); cur++; } int t = cur; for(int i = H * W; i < t - 1; i++) { add_and({i, i + 1}); cur++; } for(int i = t; i < cur; i++) { Ns.push_back(i); } add_xor(Ns); return; } for(int x1 = 0; x1 < H; x1++) { for(int y1 = 0; y1 < W; y1++) { vector<int> Ns; for(int d = -K + 1; d <= K; d++) { int x2 = x1 + d, y2 = y1 + K - abs(d); if(x2 < 0 || x2 >= H || y2 < 0 || y2 >= W) continue; Ns.push_back(x2 * W + y2); } if(!Ns.empty()) { add_or(Ns); add_and({cur, x1 * W + y1}); cur += 2; } } } vector<int> ns; for(int i = H * W + 1; i < cur; i += 2) ns.push_back(i); add_or(ns); }
#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...