#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;
c.clear();
for (int j = 0; j < i; j++)
{
c.push_back(x[j]);
}
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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |