# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
992269 | 2024-06-04T08:02:58 Z | MarwenElarbi | Vision Program (IOI19_vision) | C++17 | 0 ms | 0 KB |
#include <bits/stdc++.h> //#include "vision.h" using namespace std; #define fi first #define se second #define ll long long #define pb push_back void construct_network(int H, int W, int K) { bool grid[H+1][W]; pair<int,int> fst={-1,-1}; pair<int,int> lst={-1,-1}; pair<int,int> wa={-1,-1}; for (int i = 0; i < H; ++i) { for (int j = 0; j < W; ++j) { grid[i][j]=add_and({i*H+j}); //cout <<grid[i][j]<<" "; if(grid[i][j]==1&&fst==make_pair(-1,-1)){ fst={i,j}; }else if(grid[i][j]==1){ lst={i,j}; } }//cout <<endl; } //cout <<fst.fi<<" "<<fst.se<<" "<<lst.fi<<" "<<lst.se<<endl; if(abs(fst.fi-lst.fi)+abs(lst.se-fst.se)==K) add_and({fst.fi*H+fst.se}); else add_not(fst.fi*H+fst.se); return; } int add_and(std::vector<int> Ns); int add_or(std::vector<int> Ns); int add_xor(std::vector<int> Ns); int add_not(int N);