# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
152211 | nvmdava | Vision Program (IOI19_vision) | C++17 | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "vision.h"
#include<bits/stdc++.h>
using namespace std;
int q;
vector<int> s, d;
int h, w, k;
vector<int> find(int c1, int c2, int s){
vector<int> res;
for(int i = 0; i < h; i++){
for(int j = 0; j < w; j++){
if(i * c1 + j * c2 == s){
res.push_back()
}
}
}
}
int get(vector<int> pref, int k){
vector<int> ask;
for(int i = k; i < pref.size(); i++)
ask.push_back(add_and({pref[i - k], pref[i]}));
return add_or(ask);
}
void construct_network(int H, int W, int K){
q = H * W - 1;
h = H;
w = W;
k = K;
for(int i = 0; i < H + W - 1; i++){
vector<int> ask = find(1, 1, i);
if(s.empty())
s.push_back(add_or(ask));
else
s.push_back(add_xor(ask, add_or(ask)));
}
for(int i = 1 - W; i <= H - 1; i++){
vector<int> ask; = find(1, -1, i);
if(d.empty())
d.push_back(add_or(ask));
else
d.push_back(add_xor(ask, add_or(ask)));
}
int sk = get(s, k - 1);
int sk1 = get(s, k);
int dk = get(d, k - 1);
int dk1 = get(d, k);
add_and({add_or({sk, dk}), add_not({add_or(sk1, dk1)})});
}