Submission #1231324

#TimeUsernameProblemLanguageResultExecution timeMemory
1231324damamilaNavigation 2 (JOI21_navigation2)C++20
40 / 100
323 ms876 KiB
#include "Anna.h"
#include <bits/stdc++.h>

using namespace std;

namespace {
	int mod = 2;
} // namespace

void Anna(int N, int K, std::vector<int> R, std::vector<int> C) {
	for (int r = 0; r < N; r++) {
		for (int c = 0; c < N; c++) {
			int tmp = 0;
			for (int i = 0; i < K; i++) {
				int base = 1;
				for (int j = 0; j < i; j++) base = base*mod;
				if (c <= C[i]) tmp += 0*base; //east
				else if (c == C[i]+1) {
					if (r <= R[i]) tmp += 1*base;
					else if ((r-R[i])%2 == 1) tmp += 0*base;
					else tmp += 1*base;
				} else tmp += 1*base; //west
				//~ cerr << tmp/base << " ";
			}
			SetFlag(r, c, tmp+1);
			//~ cerr << endl;
		}
		//~ cerr << endl;
	}
}
#include "Bruno.h"
#include <bits/stdc++.h>

using namespace std;

namespace {

int mod = 2;
vector<int> south = {0, 0, 1, 0, 0, 1, 0 , 0, 1};
vector<int> correct = {0, 0, 1, 0, 0, 1, 0, 0, 0};
vector<int> north1 = {0, 0, 1, 0, 0, 0, 0 , 0, 1};
vector<int> north2 = {0, 0, 0, 0, 0, 1, 0 , 0, 0};

} // namespace

std::vector<int> Bruno(int K, std::vector<int> value) {
	vector<int> res(K, 0);
	for (int i = 0; i < 9; i++) value[i]--;
	for (int i = 0; i < K; i++) {
		vector<int> value2(9);
		int cnt = 0;
		for (int j = 0; j < 9; j++) {
			value2[j] = value[j]%mod;
			value[j] /= mod;
			cnt += value2[j];
			//~ cerr << value2[j] << " ";
		}
		//~ cerr << endl;
		if (value2 == south) res[i] = 2;
		else if (value2 == correct) res[i] = 4;
		else if (value2 == north1 || value2 == north2) res[i] = 3;
		else {
			if (cnt == 0) res[i] = 0;
			else res[i] = 1;
		}
		//~ cerr << res[i] << endl;
	}
	return res;
}
#Verdict Execution timeMemoryGrader output
Fetching results...