Submission #425150

#TimeUsernameProblemLanguageResultExecution timeMemory
425150schseVision Program (IOI19_vision)C++17
0 / 100
10 ms1100 KiB
#include "vision.h"
#ifndef EVAL
#include "grader.cpp"
#endif
#include <bits/stdc++.h>
using namespace std;

void construct_network(int H, int W, int K)
{
	vector<int> xorrows;
	for (int r = 0; r < H; r++)
	{
		vector<int> v(W);
		iota(v.begin(), v.end(), r * W);
		xorrows.push_back(add_xor(v));
	}
	int diffrentcols = add_or(xorrows);
	int iscrows;
	{
		vector<int> c;
		for (int r = 1; r < H; r++)
		{
			c.push_back(add_and({xorrows[r], xorrows[r - 1]}));
		}
		iscrows = add_or(c);
	}

	vector<int> xorcols;
	for (int c = 0; c < W; c++)
	{
		vector<int> v;
		for (int r = 0; r < H; r++)
			v.push_back(c + r * W);
		xorcols.push_back(add_xor(v));
	}

	int diffrentrows = add_or(xorcols);
	int isccols;
	{
		vector<int> c;
		for (int r = 1; r < W; r++)
		{
			c.push_back(add_and({xorcols[r], xorcols[r - 1]}));
		}
		isccols = add_or(c);
	}
	add_and({add_xor({diffrentcols, diffrentrows}), add_xor({isccols, iscrows})});
	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...