제출 #208048

#제출 시각아이디문제언어결과실행 시간메모리
208048LawlietVision Program (IOI19_vision)C++17
14 / 100
15 ms1144 KiB
#include "vision.h"
#include <bits/stdc++.h>

using namespace std;

const int MAXN = 210;

int n, m;

int lineXor[MAXN];
int columnXor[MAXN];
int lineConsecutiveAnd[MAXN];
int columnConsecutiveAnd[MAXN];

int getCell(int i, int j) { return i*m + j; }

void construct_network(int H, int W, int K) 
{
	n = H; m = W;

	for(int i = 0 ; i < n ; i++)
	{
		vector< int > q;

		for(int j = 0 ; j < m ; j++)
			q.push_back( getCell( i , j ) );

		lineXor[i] = add_xor( q );
	}

	vector< int > aux;

	for(int i = 0 ; i < n ; i++)
		aux.push_back( lineXor[i] );

	int orLine = add_or( aux );

	for(int j = 0 ; j < m ; j++)
	{
		vector< int > q;

		for(int i = 0 ; i < n ; i++)
			q.push_back( getCell( i , j ) );

		columnXor[j] = add_xor( q );
	}

	aux.clear();

	for(int i = 0 ; i < m ; i++)
		aux.push_back( columnXor[i] );

	int orColumn = add_or( aux );

	for(int i = 0 ; i < n - 1 ; i++)
	{
		aux.clear();

		aux.push_back( lineXor[i] );
		aux.push_back( lineXor[i + 1] );

		lineConsecutiveAnd[i] = add_and( aux );
	}

	for(int i = 0 ; i < m - 1 ; i++)
	{
		aux.clear();

		aux.push_back( columnXor[i] );
		aux.push_back( columnXor[i + 1] );

		columnConsecutiveAnd[i] = add_and( aux );
	}

	//orLine^orColumn == 1

	aux.clear();

	for(int i = 0 ; i < n - 1 ; i++)
		aux.push_back( lineConsecutiveAnd[i] );

	for(int i = 0 ; i < m - 1 ; i++)
		aux.push_back( columnConsecutiveAnd[i] );

	int hasAdjacent = add_or( aux );

	aux.clear();
	aux.push_back( orLine );
	aux.push_back( orColumn );

	int x = add_xor( aux );

	aux.clear();
	aux.push_back( x );
	aux.push_back( hasAdjacent );

	add_and( aux );
}
#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...