# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
199834 | mathking1021 | Memory 2 (JOI16_memory2) | C++11 | 6 ms | 380 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "Memory2_lib.h"
#include <algorithm>
#include <vector>
using namespace std;
int a[105];
bool v[105];
vector<int> ve[105];
vector<int> ans[105];
void Solve(int T, int N)
{
int n = N;
for(int i = 0; i < 2 * n; i++)
{
int j;
int x = n;
if(v[i]) continue;
for(j = 0; j < n; j++) ve[j].clear();
for(j = i + 1; j < 2 * n; j++)
{
if(v[j]) continue;
int t = Flip(i, j);
ve[t].push_back(j);
if(ans[t].size() + ve[t].size() > 2) {x = t; break;}
}
for(int k = 0; k < n; k++) if(k != x) for(int l = 0; l < ve[k].size(); l++) ans[k].push_back(ve[k][l]);
if(j == 2 * n)
{
for(j = 0; j < n; j++)
{
if(ans[j].size() < 2) ans[j].push_back(i);
Answer(ans[j][0], ans[j][1], j);
}
return;
}
ans[x].push_back(i);
v[i] = true;
for(j = 0; j < n; j++)
{
if(j == x) continue;
for(int k = 0; k < ve[j].size(); k++)
{
v[ve[j][k]] = true;
}
}
}
for(int i = 0; i < n; i++)
{
Answer(ans[i][0], ans[i][1], i);
}
return;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |