Submission #72548

#TimeUsernameProblemLanguageResultExecution timeMemory
72548cat > /dev/null (#118)Key of Impassable Doors (FXCUP3_key)C++17
23 / 100
33 ms4332 KiB
#define _CRT_SECURE_NO_WARNINGS
#include "key.h"
#include "bits/stdc++.h"

using namespace std;

void EnsureKeyInfo(int n) {

	int arr[1001];
	for (int i = 1; i <= n; i++)
	{
		TakeKey(i);
		arr[i] = Explore();
	}
	set<int> ss[1001];
	set<int> inv[1001];
	for (int i = 1; i <= n; i++)
	{
		for (int j = i; j <= n; j++)
		{
			if (i == j)
			{
				Report(i, i);
				continue;
			}
			if (inv[i].find(j) != inv[i].end())
				continue;

			TakeKey(i);
			TakeKey(j);
			int res = Explore();
			if (res <= max(arr[i], arr[j]))
			{
				if (arr[i] > arr[j])
				{
					Report(i, j);
				}
				else if (arr[i] < arr[j])
				{
					Report(j, i);
				}
				else
					Report(i, j), Report(j, i);
				ss[i].insert(j);
				ss[j].insert(i);
			}
			else
			{
				for (auto k : ss[i])
					inv[j].insert(k);
				for (auto k : ss[j])
					inv[i].insert(k);
				inv[i].insert(j);
				inv[j].insert(i);
			}
		}
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...