Submission #106481

#TimeUsernameProblemLanguageResultExecution timeMemory
106481luciocfTreasure (different grader from official contest) (CEOI13_treasure2)C++14
1 / 100
3 ms512 KiB
#include <bits/stdc++.h>
#include "treasure.h"

const int maxn = 110;

int pref[maxn][maxn];

int ans[maxn][maxn];

void solve(int l, int r, int qtd, int i)
{
	if (r-l+1 == 2)
	{
		ans[i][r] = countTreasure(i, r, i, r);
		ans[i][l] = qtd-ans[i][r];

		return;
	}

	if (r == l)
	{
		ans[i][l] = countTreasure(i, l, i, l);
		return;
	}

	int mid = (l+r)>>1;

	int x = countTreasure(i, mid+1, i, r);

	solve(l, mid, qtd-x, i); solve(mid+1, r, x, i);
}

void findTreasure (int N) 
{
	for (int i = 1; i <= N; i++)
		solve(1, N, countTreasure(i, 1, i, N), i);

	for (int i = 1; i <= N; i++)
		for (int j = 1; j <= N; j++)
			if (ans[i][j])
				Report(i, j);
}
#Verdict Execution timeMemoryGrader output
Fetching results...