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 <iostream>
#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;
#define endl '\n'
#define ll long long
#define pi pair<int, int>
#define f first
#define s second
const int mxn = 500;
int n, k;
int c;
pi f(int x){
return {x / k, x % k};
}
int ff(pi p){
return p.f * k + p.s;
}
int start(int N, bool g[mxn][mxn]){
n = N;
for(k = 1; k < n && g[k - 1][k]; k++);
for(int i = 0; i < n; i++){
if(count(g[i], g[i] + n, 1) > 4) return -1;
}
return c = ff({0, 0});
}
int nextMove(int r){
pi pc = f(c), pr = f(r);
pr.f -= pc.f, pr.s -= pc.s;
if(abs(pr.f) > abs(pr.s)){
pc.f += 2 * (pr.f > 0) - 1;
}else if(abs(pr.s) > abs(pr.f)){
pc.s += 2 * (pr.s > 0) - 1;
}
return c = ff(pc);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |