Submission #1198149

#TimeUsernameProblemLanguageResultExecution timeMemory
1198149NDT134Coreputer (IOI23_coreputer)C++20
20 / 100
0 ms396 KiB
#include "coreputer.h"

using namespace std;

std::vector<int> malfunctioning_cores(int n) {

	vector<int> r(n);
	vector<int> c, cc, d;
	int i = 0;
	for (;i  < n / 2; i++)
	{
		c.push_back(i);
	}
	int a = run_diagnostic(c);

	vector<int> x(n);
	for (int i = 0; i < n; i++)
	{
		x[i] = i;
	}

	if (a > 0)
	{
		for (int j = 0; j < n; j++)
		{
			x[j] = (j + n / 2) % n;
		}
		c.clear();
		for (int j = n / 2; j < n; j++)
		{
			c.push_back(j);
		}
		a = -1;
		if (n % 2)
		{
			i++;
		}
	}

	c.push_back(x[i]);
	int b = run_diagnostic(c);
	while (a == b)
	{
		i++;
		c.push_back(x[i]);
		a = b;
		b = run_diagnostic(c);
	}
	r[x[i]] = 1;

	int aa = a;
	a = b;
	for (int j = 0; j < i; j++)
	{
		d.clear();
		for (int k = 0; k <= i; k++)
		{
			if (k != j)
			{
				d.push_back(x[k]);
			}
		}
		b = run_diagnostic(d);
		if (a != b)
		{
			r[x[j]] = 1;
		}
	}

	a = aa;
	cc = c;
	for (int j = i + 1; j < n; j++)
	{
		c = cc;
		c.push_back(x[j]);
		b = run_diagnostic(c);
		if (a != b)
		{
			r[x[j]] = 1;
		}
	}

	return r;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...