Submission #149694

#TimeUsernameProblemLanguageResultExecution timeMemory
149694Outfraware Boat People (#200)On the Grid (FXCUP4_grid)C++17
12 / 100
9 ms256 KiB
#include "grid.h"

typedef std::vector<int> VI;


// � ���� �����
VI makeSeq(int N, int start, VI &found) {
	VI v(N);
	bool visit[1001] = { 0, };

	for (int i = 0; i < N; ++i) {
		if (found[i]) {
			int L = found[i];  // "L - 1" can be idx.
			v[L - 1] = i;
			visit[i] = true;
		}
	}

	for (int i = 0, count = 0; count < N; ++count) {
		int num = (start + count) % N;

		if (visit[num])
			continue;

		v[i++] = num;
	}

	return v;
}

VI SortDisks(int N) {
	VI found(N, 0);

	int max_h = N + (N - 1);

	for (int L = N; L >= 1; --L) {
		for (int i = 0; i < N; ++i) {
			VI v = makeSeq(N, i, found);
			int X = PutDisks(v);

			if (X != max_h)
				continue;

			found[v[0]] = L;
			--max_h;
			break;
		}
	}
	
	return found;
}


#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...