Submission #1344372

#TimeUsernameProblemLanguageResultExecution timeMemory
1344372Faisal_SaqibVision Program (IOI19_vision)C++17
0 / 100
9 ms1872 KiB
#include "vision.h"
#include <bits/stdc++.h>
using namespace std;
void construct_network(int h,int w,int k)
{
	vector<int> dig1,dig2;
	map<int,vector<int>> sm,sb;
	for(int i=0;i<h;i++)
	{
		for(int j=0;j<w;j++)
		{
			sm[i+j].push_back(i*w+j);
			sm[i-j].push_back(i*w+j);
		}
	}
	for(auto tt:sm)
	{
		dig1.push_back(add_xor(tt.second));
	}
	for(auto tt:sb)
	{
		dig2.push_back(add_xor(tt.second));
	}
	vector<int> o1=dig1,o2=dig2;
	for(int i=dig1.size()-2;i>=0;i--)
		dig1[i]=add_or({dig1[i],dig1[i+1]});
	for(int i=dig2.size()-2;i>=0;i--)
		dig2[i]=add_or({dig2[i],dig2[i+1]});
	int gk=0;
	for(int i=0;i<dig1.size();i++)
	{
		if(i+k<dig1.size())
		{
			if(!gk)gk=add_and({o1[i],dig1[i+k]});
			else gk=add_or({add_and({o1[i],dig1[i+k]}),gk});
		}
	}
	for(int i=0;i<dig2.size();i++)
	{
		if(i+k<dig2.size())
		{
			if(!gk)gk=add_and({o2[i],dig1[i+k]});
			else gk=add_or({add_and({o2[i],dig1[i+k]}),gk});
		}
	}
	k--;
	int gkmo=0;
	for(int i=0;i<dig1.size();i++)
	{
		if(i+k<dig1.size())
		{
			if(!gkmo)gkmo=add_and({o1[i],dig1[i+k]});
			else gkmo=add_or({add_and({o1[i],dig1[i+k]}),gkmo});
		}
	}
	for(int i=0;i<dig2.size();i++)
	{
		if(i+k<dig2.size())
		{
			if(!gkmo)gkmo=add_and({o2[i],dig1[i+k]});
			else gkmo=add_or({add_and({o2[i],dig1[i+k]}),gkmo});
		}
	}
	add_and({gkmo,add_not(gk)});
	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...