Submission #1075707

#TimeUsernameProblemLanguageResultExecution timeMemory
1075707Faisal_SaqibPrisoner Challenge (IOI22_prison)C++17
30 / 100
19 ms2396 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define vll vector<ll>
#define all(x) begin(x),end(x)
std::vector<std::vector<int>> devise_strategy(int N)
{
	vector<vector<int>> s;
	for(int i=0;i<=51;i++)
	{
		s.push_back({});
		if(i==0) // start by checking the bit in a
		{
			s[i].push_back(0);
			int check=12;
			for(int result=1;result<=N;result++)
			{
				bool p=(result&(1<<check));
				// cout<<"For "<<i<<' '<<result<<' '<<(((check*2)+1)*2)+p<<endl;
				s[i].push_back((((check*2)+1)*2)+p);
			}
			continue;
		}
		if(i&2) // now check bit in b
		{
			s[i].push_back(1);
			int check=i/4;
			bool oth=(i%2);
			for(int result=1;result<=N;result++)
			{
				bool p=(result&(1<<check));
				if(oth>p)
				{
					s[i].push_back(-2);
				}
				else if(oth<p)
				{
					s[i].push_back(-1);
				}
				else
				{
					if(check==0)
					{
						s[i].push_back(-1);
					}
					else
					{
						p=(result&(1<<(check-1)));
						s[i].push_back(((((check-1)*2)+0)*2)+p);
					}
				}
			}
		}
		else// now check bit in a
		{
			s[i].push_back(0);
			int check=i/4;
			bool oth=(i%2);
			for(int result=1;result<=N;result++)
			{
				bool p=(result&(1<<check));
				if(oth>p)
				{
					s[i].push_back(-1);
				}
				else if(oth<p)
				{
					s[i].push_back(-2);
				}
				else
				{
					if(check==0)
					{
						s[i].push_back(-1);
					}
					else
					{
						p=(result&(1<<(check-1)));
						s[i].push_back(((((check-1)*2)+1)*2)+p);
					}
				}
			}
			// for(int result=1;result<=N;result++)
			// {
			// 	bool p=(result&(1<<check));
			// 	cout<<"For "<<i<<' '<<result<<' '<<(((check*2)+1)*2)+p<<endl;
			// 	s[i].push_back(((((check)*2)+1)*2)+p);
			// }
		}
	}
	return s;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...