Submission #425054

#TimeUsernameProblemLanguageResultExecution timeMemory
425054madlogicVision Program (IOI19_vision)C++17
Compilation error
0 ms0 KiB
#include "vision.h" #include <bits/stdc++.h> using namespace std; int cur; int add_xor(vector<int> v) { cout << "XOR" << endl; for (int p : v) { cout << p << ' '; } cout << '\n'; return ++cur; } int add_or(vector<int> v) { cout << "OR" << endl; for (int p : v) { cout << p << " "; } cout << '\n'; return ++cur; } int add_and(vector<int> v) { cout << "AND" << endl; for (int p : v) { cout << p << ' '; } cout << '\n'; return ++cur; } void construct_network(int H, int W, int K) { cur = (H - 1) * W + (W - 1); if (K == 1) { vector<int> indsRow; for (int i = 0; i < H; i++) { vector<int> idx; for (int j = 0; j < W; j++) { idx.push_back(i * W + j); } indsRow.push_back(add_xor(idx)); } vector<int> indsCol; for (int i = 0; i < W; i++) { vector<int> idx; for (int j = 0; j < H; j++) { idx.push_back(j * W + i); } indsCol.push_back(add_xor(idx)); } int id1 = add_xor(indsRow); int id2 = add_xor(indsCol); int nn = (int) indsRow.size(); vector<int> aa; for (int i = 0; i + 1 < nn; i++) { aa.push_back(add_and({indsRow[i], indsRow[i + 1]})); } int mm = (int) indsCol.size(); vector<int> bb; for (int i = 0; i + 1 < mm; i++) { bb.push_back(add_and({indsCol[i], indsCol[i + 1]})); } int id3 = (aa.empty() ? -1 : add_xor(aa)); int id4 = (bb.empty() ? -1 : add_xor(bb)); if (id3 == -1) { add_xor({id1, id4}); } else if (id4 == -1) { add_xor({id2, id3}); } else { add_xor({add_xor({id1, id4}), add_xor({id2, id3})}); } } else if (1ll * H * W >= 1000) { vector<int> v; for (int i = 0; i < H; i++) { for (int j = 0; j < W; j++) { if (!(i == 0 && j == 0) && abs(i) + abs(j) == K) { v.push_back(add_and({0, i * W + j})); } } } if (!v.empty()) { add_or(v); } } else { vector<vector<vector<int>>> dp(3, vector<vector<int>>(H, vector<int>(W, -1))); for (int i = 0; i < H; i++) { for (int j = 0; j < W; j++) { vector<int> v{i * W + j}; for (int x = 0; x <= K; x++) { int y = K - x; set<int> s; s.insert(y); s.insert(-y); for (int ys : s) { int dx = i + x; int dy = j + ys; if (dx >= 0 && dx < H && dy >= 0 && dy < W) { int yy = dx * W + dy; v.push_back(yy); } } } dp[0][i][j] = add_xor(v); dp[1][i][j] = add_or(v); reverse(v.begin(), v.end()); v.pop_back(); if (!v.empty()) { dp[2][i][j] = add_xor(v); } } } vector<int> v; for (int i = 0; i < H; i++) { for (int j = 0; j < W; j++) { int a = dp[0][i][j]; int b = dp[1][i][j]; if (dp[2][i][j] != -1) { int id1 = add_xor({a, b}); int idx = add_and({id1, dp[2][i][j]}); v.push_back(idx); } } } if (!v.empty()) { add_or(v); } else { add_and({0, 1}); } } } int main() { ios::sync_with_stdio(false); cin.tie(0); construct_network(2, 2, 1); return 0; }

Compilation message (stderr)

/usr/bin/ld: /tmp/cc8KnCPb.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/cczUEbwb.o:vision.cpp:(.text.startup+0x0): first defined here
/usr/bin/ld: /tmp/cc8KnCPb.o: in function `add_and(std::vector<int, std::allocator<int> >)':
grader.cpp:(.text+0x150): multiple definition of `add_and(std::vector<int, std::allocator<int> >)'; /tmp/cczUEbwb.o:vision.cpp:(.text+0x460): first defined here
/usr/bin/ld: /tmp/cc8KnCPb.o: in function `add_or(std::vector<int, std::allocator<int> >)':
grader.cpp:(.text+0x170): multiple definition of `add_or(std::vector<int, std::allocator<int> >)'; /tmp/cczUEbwb.o:vision.cpp:(.text+0x320): first defined here
/usr/bin/ld: /tmp/cc8KnCPb.o: in function `add_xor(std::vector<int, std::allocator<int> >)':
grader.cpp:(.text+0x190): multiple definition of `add_xor(std::vector<int, std::allocator<int> >)'; /tmp/cczUEbwb.o:vision.cpp:(.text+0x1d0): first defined here
collect2: error: ld returned 1 exit status