제출 #166221

#제출 시각아이디문제언어결과실행 시간메모리
166221lukameladzeVision Program (IOI19_vision)C++14
100 / 100
64 ms5948 KiB
# include <bits/stdc++.h>
# include "vision.h"
using namespace std;
 
int ans(int H, int W, int K)
{
	vector<int >d1[500],d2[500],x1,x2,y11,y2,xx1,xx2,yy1,yy2,v,vv,v1;
	for (int i=0; i<H; i++)
	{
		for (int j=0; j<W; j++)
		{
			d1[i+j].push_back(i*W+j);
			d2[i-j+W-1].push_back(i*W+j);
		}
	}
	for (int i=0; i<H+W-1; i++)
	{
		x1.push_back(add_or(d1[i]));
		y11.push_back(add_or(d2[i]));
		x2.push_back(add_or(x1));
		y2.push_back(add_or(y11));
		if (i>=K)
		{
			v.push_back(add_and({x1[i],x2[i-K]}));
			v.push_back(add_and({y11[i],y2[i-K]}));
		}		
	}
	for (int i=0; i<H+W-1; i++)
	{
		xx1.push_back(add_or(d1[i]));
		yy1.push_back(add_or(d2[i]));
		xx2.push_back(add_or(xx1));
		yy2.push_back(add_or(yy1));
		if (i>=K+1)
		{
			vv.push_back(add_and({xx1[i],xx2[i-K-1]}));
			vv.push_back(add_and({yy1[i],yy2[i-K-1]}));
		}		
	}
	if(H+W-2<=K) return add_or(v);
	else
	return add_xor({add_or(v), add_or(vv)});
}
void construct_network(int H, int W, int K)
{
	ans(H,W,K);
}
#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...