제출 #1207455

#제출 시각아이디문제언어결과실행 시간메모리
1207455AvianshVision Program (IOI19_vision)C++20
33 / 100
3 ms1476 KiB
#include "vision.h"
#include <bits/stdc++.h>

using namespace std;

void construct_network(int h, int w, int k) {
	//std::vector<int> Ns;
	//Ns = {0, 1};
	//int a = add_and(Ns);
	//Ns = {0, a};
	//int b = add_or(Ns);
	//Ns = {0, 1, b};
	//int c = add_xor(Ns);
	//add_not(c);
	auto conv = [&] (int i, int j){
        return i*w+j;
	};
	int cn = 0;
	set<array<int,2>>s;
    for(int i = 0;i<h;i++){
        for(int j = 0;j<w;j++){
            for(int ai = 0;ai<=k;ai++){
                int ci = i+ai;
                int ji = j+(k-ai);
                if(ci>=h||ji>=w||ci<0||ji<0){
                    continue;
                }
                int initi = conv(i,j);
                int fini = conv(ci,ji);
                if(s.find({initi,fini})!=s.end()||s.find({fini,initi})!=s.end())
                    continue;
                add_and({initi,fini});
                s.insert({initi,fini});
                cn++;
            }

            for(int ai = 0;ai<=k;ai++){
                int ci = i-ai;
                int ji = j+(k-ai);
                if(ci>=h||ji>=w||ci<0||ji<0){
                    continue;
                }
                int initi = conv(i,j);
                int fini = conv(ci,ji);
                if(s.find({initi,fini})!=s.end()||s.find({fini,initi})!=s.end())
                    continue;
                add_and({initi,fini});
                s.insert({initi,fini});
                cn++;
            }
        }
    }
    vector<int>quer;
    for(int i = 0;i<cn;i++)
        quer.push_back(i+h*w);
    add_or(quer);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...