제출 #586232

#제출 시각아이디문제언어결과실행 시간메모리
586232KrisjanisPVision Program (IOI19_vision)C++14
12 / 100
4 ms1360 KiB
#include "vision.h"
#include <bits/stdc++.h>
typedef long long ll;
using namespace std;

void construct_network(int H, int W, int K) {
	// construct rows
	for(ll i=0;i<H;i++)
	{
		vector<int> Ns;
		for(ll j=0;j<W;j++) Ns.push_back(i*W+j);
		add_or(Ns);
	}
	// construct columns
	for(ll j=0;j<W;j++)
	{
		vector<int> Ns;
		for(ll i=0;i<H;i++) Ns.push_back(i*W+j);
		add_or(Ns);
	}

	vector<int> res;
	for(ll i=0;i<H;i++)
	{
		for(ll j=i;j<H;j++)
		{
			ll d = j-i;
			if(d>K) continue;
			for(ll k=0;k<W;k++)
			{
				for(ll l=k;l<W;l++)
				{
					ll d2 = l-k;
					if((d2+d)!=K) continue;
					vector<int> Ns;
					Ns.push_back(H*W+i);
					Ns.push_back(H*W+j);
					Ns.push_back(H*W+H+k);
					Ns.push_back(H*W+H+l);
					res.push_back(add_and(Ns));
				}
			}
		}
	}
	add_or(res);
}

/*
void construct_network(int H, int W, int K);
int add_and(std::vector<int> Ns);
int add_or(std::vector<int> Ns);
int add_xor(std::vector<int> Ns);
int add_not(int N);
*/
#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...