Submission #1210740

#TimeUsernameProblemLanguageResultExecution timeMemory
1210740siewjhNavigation 2 (JOI21_navigation2)C++20
50 / 100
292 ms876 KiB
#include "Anna.h"
#include <bits/stdc++.h>
using namespace std;

namespace {
	
} // namespace

void Anna(int N, int K, vector<int> R, vector<int> C) {
	for (int i = 0; i < N; i++)
		for (int j = 0; j < N; j++){
			int id = (i % 3) * 3 + (j % 3);
			if (id >= K){
				SetFlag(i, j, 26); continue;
			}
			int r = R[id], c = C[id];
			int rv, cv;
			if (r <= i - 2) rv = 0;
			else if (r == i - 1) rv = 1;
			else if (r == i) rv = 2;
			else if (r == i + 1) rv = 3;
			else rv = 4;
			if (c <= j - 2) cv = 0;
			else if (c == j - 1) cv = 1;
			else if (c == j) cv = 2;
			else if (c == j + 1) cv = 3;
			else cv = 4;
			SetFlag(i, j, rv * 5 + cv + 1);
		}
}
#include "Bruno.h"
#include <bits/stdc++.h>
using namespace std;

namespace {

int variable_example = 1;

} // namespace

vector<int> Bruno(int K, vector<int> value){
	vector<int> ans(K);
	int id;
	for (int i = 0; i < 9; i += 3)
		if (value[i] == 26 || value[i + 1] == 26 || value[i + 2] == 26){
			if (value[i] != 26) id = (i + 3) % 9;
			else if (value[i + 1] != 26) id = (i + 4) % 9;
			else id = (i + 5) % 9;
		}
	int rid = id / 3, cid = id % 3;
	for (int i = 0; i < K; i++){
		int ridh = (rid + i / 3) % 3, cidh = (cid + i % 3) % 3, idh = ridh * 3 + cidh;
		int rv = (value[idh] - 1) / 5, cv = (value[idh] - 1) % 5;
		int dr = ridh, dc = cidh;
		if (rv == 0) dr -= 2;
		else if (rv == 1) dr--;
		else if (rv == 3) dr++;
		else if (rv == 4) dr += 2;
		if (cv == 0) dc -= 2;
		else if (cv == 1) dc--;
		else if (cv == 3) dc++;
		else if (cv == 4) dc += 2;
		if (dr < 1) ans[i] = 3;
		else if (dr > 1) ans[i] = 2;
		else if (dc < 1) ans[i] = 1;
		else if (dc > 1) ans[i] = 0;
		else ans[i] = 4;
	}
	return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...