# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
153075 | 2019-09-12T08:51:18 Z | oolimry | Vision Program (IOI19_vision) | C++14 | 44 ms | 4340 KB |
#include "vision.h" #include <bits/stdc++.h> using namespace std; void construct_network(int H, int W, int K) { map<int, vector<int> > a; ///down left (/) map<int, vector<int> > b; ///down right (\) for(int r = 0;r < H;r++){ for(int c = 0;c < W;c++){ a[r+c].push_back(r * W + c); b[r-c].push_back(r * W + c); } } int s = a.size(); int cnt = H*W; for(map<int, vector<int> >::iterator it = a.begin();it != a.end();it++){ //cout << it->first << ": "; //for(int x : it->second){ // cout << x << " "; //} //cout << "\n"; add_or(it->second); cnt++; } for(map<int, vector<int> >::iterator it = b.begin();it != b.end();it++){ //cout << it->first << ": "; //for(int x : it->second){ // cout << x << " "; //} //cout << "\n"; add_or(it->second); cnt++; } for(int i = 0;i < s - K;i++){ vector<int> Ns = {H*W+i,H*W+i+K}; add_and(Ns); cnt++; } for(int i = 0;i < s - K;i++){ vector<int> Ns = {H*W+i+s,H*W+i+K+s}; add_and(Ns); cnt++; } vector<int> Ns; for(int i = H*W+2*s;i < cnt;i++){ Ns.push_back(i); } int impt = add_or(Ns); for(int r = 0;r < H;r++){ vector<int> Ds; for(int c = 0;c < W;c++){ Ds.push_back(r * W + c); } add_or(Ds); } for(int c = 0;c < W;c++){ vector<int> Ds; for(int r = 0;r < H;r++){ Ds.push_back(r * W + c); } add_or(Ds); } vector<int> hh; vector<int> vv; for(int r = 0;r < H - K;r++){ vector<int> Ds; for(int i = 0;i <= K;i++){ Ds.push_back(impt + 1 + i + r); } int x = add_xor(Ds); int y = add_or(Ds); int z = add_not(x); int zz = add_and({z,y}); hh.push_back(zz); } for(int r = 0;r < W - K;r++){ vector<int> Ds; for(int i = 0;i <= K;i++){ Ds.push_back(impt + 1 + i + r + H); } int x = add_xor(Ds); int y = add_or(Ds); int z = add_not(x); int zz = add_and({z,y}); vv.push_back(zz); } vector<int> st; st.push_back(impt); vector<int> k1; vector<int> k2; for(int r = 0;r < H;r++){ vector<int> Ds; for(int c = 0;c < W;c++){ Ds.push_back(r * W + c); } k1.push_back(add_xor(Ds)); } for(int c = 0;c < W;c++){ vector<int> Ds; for(int r = 0;r < H;r++){ Ds.push_back(r * W + c); } k1.push_back(add_xor(Ds)); } for(int r = 0;r < H;r++){ vector<int> Ds; for(int c = 0;c < W;c++){ Ds.push_back(r * W + c); } k2.push_back(add_or(Ds)); } for(int c = 0;c < W;c++){ vector<int> Ds; for(int r = 0;r < H;r++){ Ds.push_back(r * W + c); } k2.push_back(add_or(Ds)); } vector<int> k3; for(int i = 0;i < k1.size();i++){ k3.push_back(add_not(k1[i])); } vector<int> k4; for(int i = 0;i < k3.size();i++){ k4.push_back(add_and({k2[i],k3[i]})); } int k5 = add_or(k4); vv.push_back(k5); hh.push_back(k5); if(!vv.empty()) {int b1 = add_or(vv); st.push_back(b1);} if(!hh.empty()) {int b2 = add_or(hh); st.push_back(b2);} add_and(st); }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Correct | 2 ms | 256 KB | Output is correct |
3 | Correct | 2 ms | 256 KB | Output is correct |
4 | Correct | 2 ms | 376 KB | Output is correct |
5 | Correct | 2 ms | 376 KB | Output is correct |
6 | Incorrect | 2 ms | 376 KB | on inputs (0, 1), (1, 0), expected 1, but computed 0 |
7 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Correct | 2 ms | 256 KB | Output is correct |
3 | Correct | 2 ms | 256 KB | Output is correct |
4 | Correct | 2 ms | 376 KB | Output is correct |
5 | Correct | 2 ms | 376 KB | Output is correct |
6 | Incorrect | 2 ms | 376 KB | on inputs (0, 1), (1, 0), expected 1, but computed 0 |
7 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Correct | 2 ms | 256 KB | Output is correct |
3 | Correct | 2 ms | 256 KB | Output is correct |
4 | Correct | 2 ms | 376 KB | Output is correct |
5 | Correct | 2 ms | 376 KB | Output is correct |
6 | Incorrect | 2 ms | 376 KB | on inputs (0, 1), (1, 0), expected 1, but computed 0 |
7 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Correct | 2 ms | 256 KB | Output is correct |
3 | Correct | 2 ms | 256 KB | Output is correct |
4 | Correct | 2 ms | 376 KB | Output is correct |
5 | Correct | 2 ms | 376 KB | Output is correct |
6 | Incorrect | 2 ms | 376 KB | on inputs (0, 1), (1, 0), expected 1, but computed 0 |
7 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 4 ms | 632 KB | Output is correct |
2 | Correct | 5 ms | 632 KB | Output is correct |
3 | Correct | 5 ms | 636 KB | Output is correct |
4 | Correct | 3 ms | 504 KB | Output is correct |
5 | Correct | 4 ms | 632 KB | Output is correct |
6 | Correct | 5 ms | 760 KB | Output is correct |
7 | Correct | 5 ms | 632 KB | Output is correct |
8 | Correct | 3 ms | 504 KB | Output is correct |
9 | Correct | 4 ms | 632 KB | Output is correct |
10 | Correct | 5 ms | 760 KB | Output is correct |
11 | Correct | 5 ms | 632 KB | Output is correct |
12 | Correct | 6 ms | 632 KB | Output is correct |
13 | Correct | 5 ms | 632 KB | Output is correct |
14 | Correct | 3 ms | 504 KB | Output is correct |
15 | Correct | 4 ms | 632 KB | Output is correct |
16 | Correct | 5 ms | 760 KB | Output is correct |
17 | Correct | 6 ms | 632 KB | Output is correct |
18 | Correct | 6 ms | 632 KB | Output is correct |
19 | Correct | 5 ms | 636 KB | Output is correct |
20 | Correct | 3 ms | 504 KB | Output is correct |
21 | Correct | 2 ms | 376 KB | Output is correct |
22 | Correct | 2 ms | 256 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 256 KB | Output is correct |
2 | Incorrect | 2 ms | 376 KB | on inputs (0, 0), (1, 1), expected 1, but computed 0 |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 44 ms | 4256 KB | Output is correct |
2 | Correct | 2 ms | 380 KB | Output is correct |
3 | Correct | 6 ms | 632 KB | Output is correct |
4 | Correct | 9 ms | 1016 KB | Output is correct |
5 | Correct | 4 ms | 632 KB | Output is correct |
6 | Correct | 4 ms | 632 KB | Output is correct |
7 | Correct | 23 ms | 2424 KB | Output is correct |
8 | Correct | 24 ms | 2424 KB | Output is correct |
9 | Correct | 43 ms | 4340 KB | Output is correct |
10 | Correct | 2 ms | 376 KB | Output is correct |
11 | Correct | 2 ms | 256 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Correct | 2 ms | 256 KB | Output is correct |
3 | Correct | 2 ms | 256 KB | Output is correct |
4 | Correct | 2 ms | 376 KB | Output is correct |
5 | Correct | 2 ms | 376 KB | Output is correct |
6 | Incorrect | 2 ms | 376 KB | on inputs (0, 1), (1, 0), expected 1, but computed 0 |
7 | Halted | 0 ms | 0 KB | - |