# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
147424 | Nucleist | Vision Program (IOI19_vision) | C++14 | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#include "vision.h"
using namespace std;
#define flash ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0)
#define debug(x) cerr << " - " << #x << ": " << x << endl;
#define debugs(x, y) cerr << " - " << #x << ": " << x << " " << #y << ": " << y << endl;
#define all(x) (x).begin(),(x).end()
#define sz(x) (ll)x.size()
#define ll long long
#define INF 1000000000
#define pb push_back
struct greateri
{
template<class T>
bool operator()(T const &a, T const &b) const { return a > b; }
};
map<pair<int,int>,int>gg;
void construct_network(int H,int W,int K)
{
//flash;
vector<int>zeros;
for (int i = 0; i < H; ++i)
{
for (int j = 0; j < W; ++j)
{
int cell=i*W+j;
zeros.pb(cell);
}
}
vector<pair<int,int>>usi;
for (int i = 0; i < H; ++i)
{
for (int j = 0; j < W; ++j)
{
for (int ka = 0; ka < H; ++ka)
{
for (int c = 0; c < W; ++c)
{
int cell1=i*W+j;
int cell2=ka*W+c;
if(cell1!=cell2 && gg.find({min(cell1,cell2),max(cell1,cell2)})==gg.end())
{
int one,two;
gg[{min(cell1,cell2),max(cell1,cell2)}]=1;
vector<int>now;
now.pb(cell1),now.pb(cell2);
one=add_and(now);
if((abs(i-ka)+abs(j-c)) == K)
two=add_or(zeros);
else two=add_and(zeros);
usi.pb({one,two});
}
}
}
}
}
int last1=last;
last--;
vector<int>lasti;
for (int i = 0; i < usi.size(); i+=2)
{
vector<int>now;
now.pb(usi[i].first);now.pb(usi[i].second);
int fol = add_and(now);
lasti.pb(fol);
}
int so = add_xor(lasti);
//int xo = add_not(doi);
return;
}
//code the AC sol !
// BS/queue/map