제출 #300934

#제출 시각아이디문제언어결과실행 시간메모리
300934luciocf식물 비교 (IOI20_plants)C++14
0 / 100
5 ms5120 KiB
#include <bits/stdc++.h>
#include "plants.h"

using namespace std;

const int maxn = 2e5+10;

int ord[maxn], tt;
bool mark[maxn];

vector<int> grafo[maxn];

void dfs(int u)
{
	mark[u] = 1;
	for (auto v: grafo[u])
		if (!mark[v])
			dfs(v);

	ord[u] = ++tt;
}

void init(int k, vector<int> r)
{
	int n = r.size();

	for (int i = 0; i < n-1; i++)
	{
		if (r[i] == 1) grafo[i+1].push_back(i);
		else grafo[i].push_back(i+1);
	}

	if (r[n-1] == 1) grafo[0].push_back(n-1);
	else grafo[n-1].push_back(0);

	for (int i = 0; i < n; i++)
		if (!mark[i])
			dfs(i);
}

int compare_plants(int x, int y)
{
	return ord[x] > ord[y];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...