# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1143824 | daoquanglinh2007 | Navigation 2 (JOI21_navigation2) | C++20 | 309 ms | 880 KiB |
#include "Anna.h"
#include <bits/stdc++.h>
using namespace std;
const int dx[] = {-1, -1, -1, 0, 0, 0, 1, 1, 1}, dy[] = {-1, 0, 1, -1, 0, 1, -1, 0, 1};
bool used[9];
bool check(int N, int K, vector <int> R, vector <int> C, int px, int py){
for (int x = 0; x < N; x++)
for (int y = 0; y < N; y++){
int tmpx = (x-px+3)%3, tmpy = (y-py+3)%3, id = tmpx*3+tmpy;
if (id >= K) continue;
if (R[id] == x+dx[8] && C[id] == y+dy[8]) return 0;
}
return 1;
}
void process(int N, int K, vector <int> R, vector <int> C, int px, int py){
memset(used, 0, sizeof(used));
for (int i = 0; i < K; i++){
for (int j = 0; j < 8; j++){
int x = R[i]-dx[j], y = C[i]-dy[j];
if (x < 0 || x >= N || y < 0 || y >= N) continue;
int tmpx = (x-px+3)%3, tmpy = (y-py+3)%3, id = tmpx*3+tmpy;
if (id != i) continue;
used[j] = 1;
}
}
int unused_number = -1;
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |