Submission #414608

#TimeUsernameProblemLanguageResultExecution timeMemory
414608ollelVision Program (IOI19_vision)C++14
47 / 100
11 ms1100 KiB
#include <bits/stdc++.h> #include <iostream> #include "vision.h" using namespace std; #define rep(i,a,b) for(int i = a; i < b; i++) #define pb push_back typedef long long ll; typedef vector<int> vi; typedef vector<vi> vvi; typedef pair<int,int> pii; int h, w, k, inst; // bool add_or(vi& q) { // cout << "or:\n"; // for(auto &i : q) cout << i << " ";cout<<endl; // bool ans; cin >> ans; // return ans; // } // // bool add_not(int x ) { // cout << "not:\n"; // cout << x << endl; // bool ans; cin >> ans; return ans; // } // // bool add_and(vi& q) { // cout << "and:\n"; // for(auto &i : q) cout << i << " ";cout<<endl; // bool ans; cin >> ans; // return ans; // } void kone() { vi R; rep(i, 0, h) { vi indices; rep(j, 0, w) indices.pb(j + i*w); R.pb(add_or(indices)); } vi C; rep(j, 0, w) { vi indices; rep(i, 0, h) indices.pb(j + i*w); C.pb(add_or(indices)); } vi adjc; rep(i, 0, w - 1) { vi ask = {C[i], C[i + 1]}; adjc.pb(add_and(ask)); } vi adjr; rep(i, 0, h - 1) { vi ask = {R[i], R[i + 1]}; adjr.pb(add_and(ask)); } vi pos; vi ask = {add_xor(R), add_or(adjc)}; pos.pb(add_and(ask)); ask.clear(); ask = {add_xor(C), add_or(adjr)}; pos.pb(add_and(ask)); add_or(pos); } void construct_network(int H, int W, int K) { h = H; w = W; k = K; inst = h * w; if (k == 1 && w > 1 && h > 1) {kone(); return;} int fi = inst; rep(x, 0, w) rep(y, 0, h) { vi ask = {x+y*w}; rep(x2, 0, w) rep(y2, 0, h) { if (abs(x2 - x) + abs(y2 - y) == k) { vi ask = {x+y*w, x2+y2*w}; inst = add_and(ask); } } } vi ask; rep(i,fi,inst+1) ask.pb(i); add_or(ask); } // int main() { // int H ,W, K; cin >> H>>W>>K;construct_network(H, W, K); // }
#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...