답안 #1071206

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1071206 2024-08-23T05:54:57 Z Muhammad_Aneeq 참나무 (IOI23_beechtree) C++17
5 / 100
2000 ms 19928 KB
#include <vector>
#include <algorithm>
#include <set>
#include <iostream>
using namespace std;
int const MAXN=2e5+10;
vector<int>nei[MAXN]={};
int c[MAXN]={};
int h[MAXN]={};
int ans[MAXN]={};
int ind[MAXN]={};
int cnt[MAXN]={};
int p[MAXN]={};
bool check(vector<int>d,int u)
{
	for (auto i:d)
		ind[i]=-1,cnt[c[i]]=0;
	int z=1;
	for (auto i:d)
	{
		if (ind[p[i]]==-1)
			return 0;
		if (cnt[c[i]]!=ind[p[i]])
			return 0;
		ind[i]=z++;
		cnt[c[i]]++;
	}
	return 1;
}
bool subt3=1;
vector<int> dfs(int u)
{
	vector<int>d;
	bool w=1;
	for (auto i:nei[u])
	{
		h[i]=h[u]+1;
		vector<int>f=dfs(i);
		for (auto i:f)
			d.push_back(i);
		w&=ans[i];
	}
	if (u==0&&subt3)
	{
		ans[u]=0;
		return {};
	}
	if (w==0)
	{
		ans[u]=0;
		return {};
	}
	sort(begin(d),end(d));
	while (!check(d,u))
	{
		if (!next_permutation(begin(d),end(d)))
		{
			ans[u]=0;
			break;
		}
	}
	d.push_back(u);
	return d;
}
vector<int> beechtree(int N, int M, vector<int> P, vector<int> C)
{
	for (int i=0;i<N;i++)
		c[i]=C[i],p[i]=P[i],ans[i]=1;
	bool w=1;
	for (int i=1;i<N;i++)
	{
		nei[P[i]].push_back(i);
		if (P[i]!=i-1)
			w=0;
		if (P[i]!=0&&P[P[i]]!=0)
			subt3=0;
	}
	if (w)
	{
		vector<int>ans(N,0);
		ans[N-1]=1;
		for (int i=N-2;i>=0;i--)
		{
			if (c[i+1]==c[N-1])
				ans[i]=1;
			else
				break;
		}
		return ans;
	}
	dfs(0);
	vector<int>d;
	for (int i=0;i<N;i++)
		d.push_back(ans[i]);
	return d;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 7512 KB Output is correct
2 Correct 1 ms 9564 KB Output is correct
3 Correct 1 ms 9564 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 7516 KB Output is correct
2 Correct 2 ms 7516 KB Output is correct
3 Correct 2 ms 7516 KB Output is correct
4 Correct 2 ms 7516 KB Output is correct
5 Correct 1 ms 7516 KB Output is correct
6 Correct 2 ms 7516 KB Output is correct
7 Correct 2 ms 7512 KB Output is correct
8 Incorrect 2 ms 7516 KB 2nd lines differ - on the 1st token, expected: '1', found: '0'
9 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 7516 KB Output is correct
2 Correct 2 ms 7516 KB Output is correct
3 Correct 2 ms 7516 KB Output is correct
4 Correct 2 ms 7516 KB Output is correct
5 Correct 1 ms 7516 KB Output is correct
6 Correct 2 ms 7516 KB Output is correct
7 Correct 58 ms 19924 KB Output is correct
8 Correct 52 ms 19796 KB Output is correct
9 Correct 1 ms 7516 KB Output is correct
10 Correct 1 ms 7516 KB Output is correct
11 Correct 2 ms 7512 KB Output is correct
12 Correct 2 ms 7516 KB Output is correct
13 Correct 2 ms 7516 KB Output is correct
14 Correct 2 ms 7516 KB Output is correct
15 Correct 2 ms 7488 KB Output is correct
16 Correct 2 ms 7516 KB Output is correct
17 Correct 48 ms 19928 KB Output is correct
18 Correct 50 ms 19804 KB Output is correct
19 Correct 49 ms 19792 KB Output is correct
20 Correct 47 ms 19916 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 9560 KB Output is correct
2 Execution timed out 2036 ms 9564 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 7516 KB Output is correct
2 Correct 2 ms 7516 KB Output is correct
3 Correct 2 ms 7512 KB Output is correct
4 Incorrect 2 ms 7516 KB 2nd lines differ - on the 1st token, expected: '1', found: '0'
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 7512 KB Output is correct
2 Correct 1 ms 9564 KB Output is correct
3 Correct 1 ms 9564 KB Output is correct
4 Correct 1 ms 7516 KB Output is correct
5 Correct 2 ms 7516 KB Output is correct
6 Correct 2 ms 7516 KB Output is correct
7 Correct 2 ms 7516 KB Output is correct
8 Correct 1 ms 7516 KB Output is correct
9 Correct 2 ms 7516 KB Output is correct
10 Correct 2 ms 7512 KB Output is correct
11 Incorrect 2 ms 7516 KB 2nd lines differ - on the 1st token, expected: '1', found: '0'
12 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 7516 KB Output is correct
2 Correct 2 ms 7516 KB Output is correct
3 Correct 2 ms 7512 KB Output is correct
4 Incorrect 2 ms 7516 KB 2nd lines differ - on the 1st token, expected: '1', found: '0'
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 7512 KB Output is correct
2 Correct 1 ms 9564 KB Output is correct
3 Correct 1 ms 9564 KB Output is correct
4 Correct 1 ms 7516 KB Output is correct
5 Correct 2 ms 7516 KB Output is correct
6 Correct 2 ms 7516 KB Output is correct
7 Correct 2 ms 7516 KB Output is correct
8 Correct 1 ms 7516 KB Output is correct
9 Correct 2 ms 7516 KB Output is correct
10 Correct 2 ms 7512 KB Output is correct
11 Incorrect 2 ms 7516 KB 2nd lines differ - on the 1st token, expected: '1', found: '0'
12 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 7516 KB Output is correct
2 Correct 2 ms 7516 KB Output is correct
3 Correct 2 ms 7512 KB Output is correct
4 Incorrect 2 ms 7516 KB 2nd lines differ - on the 1st token, expected: '1', found: '0'
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 7512 KB Output is correct
2 Correct 1 ms 9564 KB Output is correct
3 Correct 1 ms 9564 KB Output is correct
4 Correct 1 ms 7516 KB Output is correct
5 Correct 2 ms 7516 KB Output is correct
6 Correct 2 ms 7516 KB Output is correct
7 Correct 2 ms 7516 KB Output is correct
8 Correct 1 ms 7516 KB Output is correct
9 Correct 2 ms 7516 KB Output is correct
10 Correct 2 ms 7512 KB Output is correct
11 Incorrect 2 ms 7516 KB 2nd lines differ - on the 1st token, expected: '1', found: '0'
12 Halted 0 ms 0 KB -