Submission #427824

#TimeUsernameProblemLanguageResultExecution timeMemory
427824albertolg101Vision Program (IOI19_vision)C++17
41 / 100
2 ms332 KiB
#include <bits/stdc++.h>
#include "vision.h"
	
using namespace std;
	
vector<int> last;

void f (int a, int b, int c, int d, int H, int W)
{
	if(c >= H or d >= W or d < 0)
		return ;
	
	int cell_a = a * W + b, 
		cell_b = c * W + d;
	
	int now = add_and(vector<int> {cell_a, cell_b});
	last.push_back(now);
}
	
void construct_network(int H, int W, int K) {
	
	if(min(H, W) <= 10 or max(H, W) == 1)
	{
		for(int i = 0 ; i < H ; i++)
		{
			for(int j = 0 ; j < W ; j++)
			{
				for(int a = 0 ; i + a < H and a <= K ; a++)
				{
					int b = K - a;
					f(i, j, i+a, j+b, H, W);
					f(i, j, i+a, j-b, H, W);
				}
			}
		}
	}
	
	else
	{
		int i = 0, j = 0;
		for(int a = 0 ; i + a < H and a <= K ; a++)
		{
			int b = K - a;
			f(i, j, i+a, j+b, H, W);
			f(i, j, i+a, j-b, H, W);
		}
	}
	
	add_or(last);

	return ;
}
#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...