#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;
// }
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));
vi 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) kone();
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);
// }
Compilation message
vision.cpp:37:1: error: ISO C++ forbids declaration of 'kone' with no type [-fpermissive]
37 | kone()
| ^~~~
vision.cpp: In function 'int kone()':
vision.cpp:67:6: error: redeclaration of 'vi ask'
67 | vi ask = {add_xor(C), add_or(adjr)};
| ^~~
vision.cpp:65:6: note: 'vi ask' previously declared here
65 | vi ask = {add_xor(R), add_or(adjc)};
| ^~~
vision.cpp:71:1: warning: no return statement in function returning non-void [-Wreturn-type]
71 | }
| ^