제출 #1330146

#제출 시각아이디문제언어결과실행 시간메모리
1330146enzyVision Program (IOI19_vision)C++20
33 / 100
9 ms1728 KiB
#include "vision.h"
#include<bits/stdc++.h>
#define pii pair<int,int>
using namespace std;

bool in(int x, int y, int H, int W){
	return 0<=x&&x<H&&0<=y&&y<W;
}

map<pii,int>mp;

void construct_network(int H, int W, int K){
	mp.clear();
	vector<int>ret;
	for(int j=0;j<H*W;j++){
		int x=j/W, y=j%W;
		for(int i=-H;i<=H;i++){
			int nx=x+i, ny=y+(K-i);
			if(j<nx*W+ny&&in(nx,ny,H,W)&&abs(x-nx)+abs(y-ny)==K&&mp[{j,nx*W+ny}]==0){
				ret.push_back(add_and({j,nx*W+ny}));
				mp[{j,nx*W+ny}]++;
				// cerr << j << ' ' << nx*W+ny << '\n';
			}
			nx=x-i, ny=y+(K-i);
			if(j<nx*W+ny&&in(nx,ny,H,W)&&abs(x-nx)+abs(y-ny)==K&&mp[{j,nx*W+ny}]==0){
				ret.push_back(add_and({j,nx*W+ny}));
				mp[{j,nx*W+ny}]++;
				// cerr << j << ' ' << nx*W+ny << '\n';
			}
			nx=x+i, ny=y-(K-i);
			if(j<nx*W+ny&&in(nx,ny,H,W)&&abs(x-nx)+abs(y-ny)==K&&mp[{j,nx*W+ny}]==0){
				ret.push_back(add_and({j,nx*W+ny}));
				mp[{j,nx*W+ny}]++;
				// cerr << j << ' ' << nx*W+ny << '\n';
			}
			nx=x-i, ny=y-(K-i);
			if(j<nx*W+ny&&in(nx,ny,H,W)&&abs(x-nx)+abs(y-ny)==K&&mp[{j,nx*W+ny}]==0){
				ret.push_back(add_and({j,nx*W+ny}));
				mp[{j,nx*W+ny}]++;
				// cerr << j << ' ' << nx*W+ny << '\n';
			}
		}
	}
	int ult=add_or(ret);
}
#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...