답안 #716852

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
716852 2023-03-31T07:25:37 Z Nonoze Vision Program (IOI19_vision) C++14
8 / 100
1 ms 212 KB
#include "vision.h"

#include <bits/stdc++.h>
using namespace std;

void construct_network(int H, int W, int K) {
	vector<int> Ns;
	int empl=H*W-1;
	if (H>30 || W>30)
	{
		int i=0, j=0;
		vector<int> possibles;
		int act=i*W+j;
		for (int k = 0; k < H; ++k)
		{
			for (int l = 0; l < W; ++l)
			{
				if (abs(k-i)+abs(l-j)==K && k*W+l>=act)
				{
					possibles.push_back(k*W+l);
				}
			}
		}
		if (!possibles.size()) {
			return;
		}
		if (possibles.size()==1)
		{
			add_and({possibles[0], i*W+j});
			empl++;
		}
		else
		{
			add_xor(possibles);
			empl++;
			add_and({empl, i*W+j});
			empl++;
		}
		return;
	}
	if (K==1)
	{
		int l=0, r=H*W-1;
		while(l<r) {
			int mid=(l+r)/2;
			vector<int> temp;
			for (int i = l; i <= mid; ++i)
			{
				temp.push_back(i);
			}
			if (add_or(temp)) {
				r=mid;
			} else {
				l=mid+1;
			}
		}
		int act=l;
		vector<int> solution;
		int gd=act%W;
		if (act-W>=0) solution.push_back(act-W);
		if (act+W<=H*W-1) solution.push_back(act+W);
		if (gd-1>=0) solution.push_back(act-1);
		if (gd+1<=W) solution.push_back(act+1);
		add_or(solution);
		return;
	}

	for (int i = 0; i < H; ++i)
	{
		for (int j = 0; j < W; ++j)
		{
			vector<int> possibles;
			int act=i*W+j;
			for (int k = 0; k < H; ++k)
			{
				for (int l = 0; l < W; ++l)
				{
					if (abs(k-i)+abs(l-j)==K && k*W+l>=act)
					{
						possibles.push_back(k*W+l);
					}
				}
			}
			if (!possibles.size()) continue;
			if (possibles.size()==1)
			{
				add_and({possibles[0], i*W+j});
				empl++;
			}
			else
			{
				add_xor(possibles);
				empl++;
				add_and({empl, i*W+j});
				empl++;
			}
			Ns.push_back(empl);
		}
	}
	add_or(Ns);
	return;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Incorrect 0 ms 212 KB on inputs (0, 1), (1, 0), expected 0, but computed 1
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Incorrect 0 ms 212 KB on inputs (0, 1), (1, 0), expected 0, but computed 1
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Incorrect 0 ms 212 KB on inputs (0, 1), (1, 0), expected 0, but computed 1
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Incorrect 0 ms 212 KB on inputs (0, 1), (1, 0), expected 0, but computed 1
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 212 KB on inputs (0, 1), (0, 2), expected 1, but computed 0
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 0 ms 212 KB Output is correct
10 Correct 0 ms 212 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 0 ms 212 KB Output is correct
13 Correct 0 ms 212 KB Output is correct
14 Correct 0 ms 212 KB Output is correct
15 Correct 1 ms 212 KB Output is correct
16 Correct 1 ms 212 KB Output is correct
17 Correct 0 ms 212 KB Output is correct
18 Correct 0 ms 212 KB Output is correct
19 Correct 0 ms 212 KB Output is correct
20 Correct 0 ms 212 KB Output is correct
21 Correct 1 ms 212 KB Output is correct
22 Correct 0 ms 212 KB Output is correct
23 Correct 0 ms 212 KB Output is correct
24 Correct 0 ms 212 KB Output is correct
25 Correct 1 ms 212 KB Output is correct
26 Correct 0 ms 212 KB Output is correct
27 Correct 1 ms 212 KB Output is correct
28 Correct 0 ms 212 KB Output is correct
29 Correct 0 ms 212 KB Output is correct
30 Correct 0 ms 212 KB Output is correct
31 Correct 0 ms 212 KB Output is correct
32 Correct 1 ms 212 KB Output is correct
33 Correct 0 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 212 KB on inputs (80, 199), (81, 199), expected 1, but computed 0
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Incorrect 0 ms 212 KB on inputs (0, 1), (1, 0), expected 0, but computed 1
6 Halted 0 ms 0 KB -