Submission #1195257

#TimeUsernameProblemLanguageResultExecution timeMemory
1195257DeathIsAweVision Program (IOI19_vision)C++20
0 / 100
1 ms964 KiB
#include "vision.h"
#include <bits/stdc++.h>
#define pb push_back
#define mp make_pair
#define ff first
#define ss second
#define ll long long
using namespace std;
int h, w, k;


int ctn(pair<int,int> coords) {
	return coords.ff + h * coords.ss;
}


bool isoob(pair<int,int> coords) {
	if (coords.ff < 0 || coords.ss < 0 || coords.ff >= w || coords.ss >= h) {
		return true;
	}
	return false;
}


void construct_network(int H, int W, int K) {
	h = H; w = W; k = K;
	pair<int,int> curpixel;
	vector<int> Ns, finalNs;
	int insnum = 0;
	for (int i=0;i<w;i++) {
		for (int j=0;j<h;j++) {
			curpixel.ff = i; curpixel.ss = j;
			Ns.clear();
			

			if (!isoob(mp(curpixel.ff, curpixel.ss - k))) {Ns.pb(ctn(mp(curpixel.ff, curpixel.ss - k)));}
			if (!isoob(mp(curpixel.ff, curpixel.ss + k))) {Ns.pb(ctn(mp(curpixel.ff, curpixel.ss + k)));}
			if (!isoob(mp(curpixel.ff - k, curpixel.ss))) {Ns.pb(ctn(mp(curpixel.ff - k, curpixel.ss)));}
			if (!isoob(mp(curpixel.ff + k, curpixel.ss))) {Ns.pb(ctn(mp(curpixel.ff + k, curpixel.ss)));}
			for (int i=1;i<k-1;i++) {
				if (!isoob(mp(curpixel.ff - i, curpixel.ss - k + i))) {Ns.pb(ctn(mp(curpixel.ff - i, curpixel.ss - k + i)));}
				if (!isoob(mp(curpixel.ff + i, curpixel.ss - k + i))) {Ns.pb(ctn(mp(curpixel.ff + i, curpixel.ss - k + i)));}
				if (!isoob(mp(curpixel.ff - i, curpixel.ss + k - i))) {Ns.pb(ctn(mp(curpixel.ff - i, curpixel.ss + k - i)));}
				if (!isoob(mp(curpixel.ff + i, curpixel.ss + k - i))) {Ns.pb(ctn(mp(curpixel.ff + i, curpixel.ss + k - i)));}
			}
			if (Ns.size() == 0) continue;
			insnum = add_or(Ns);
			Ns.clear(); Ns.pb(ctn(curpixel));
			add_or(Ns);


			Ns.clear();
			Ns.pb(insnum); 
			Ns.pb(insnum + 1);
			finalNs.pb(add_and(Ns));
		}
	}


	Ns.pb(0);
	add_or(Ns);
}
#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...