제출 #837312

#제출 시각아이디문제언어결과실행 시간메모리
837312TrumlingVision Program (IOI19_vision)C++14
12 / 100
1 ms976 KiB
#include "vision.h"
#include <bits/stdc++.h>
using namespace std; 

typedef long long ll;
#define pb push_back
#define F first
#define S second
#define enter cout<<'\n';
#define INF 99999999999999999
#define MOD 1000000007
#define all(x) x.begin(),x.end()

void construct_network(int H, int W, int K) 
{
	
	ll idx=H*W;
	for(int i=0;i<H;i++)
		for(int j=0;j<W;j++)
			{
				vector<int>Ns;
				Ns.pb(i*W+j);

				add_and({i*W+j});
				
				int curr=K;
				while(curr>=0)
				{
					if(j+curr>=W || i+(K-curr)>=H)
					{
						curr--;
						continue;
					}
	
					Ns.pb(W*(i+K-curr)+j+curr);
					curr--;
				}
				curr=1;
				while(curr<K)
				{
					if(j-curr<0 || i+(K-curr)>=H)
					{
						curr++;
						continue;
					}
					Ns.pb(W*(i+K-curr)+j-curr);
					idx++;
					curr++;
				}
				add_xor(Ns);
				add_not(idx+1);
				idx+=3;
			}
	vector<int>ans;
	ll idxn=0;
	for(int i=W*H;i<idx;i+=3)
	{
		add_and({i,i+2});
		idxn++;
	}
		

	for(int i=idx;i<idx+idxn;i++)
	ans.pb(i);

	add_or(ans);
		
}
#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...