欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【结论?】这是一颗树吗?

程序员文章站 2022-03-26 11:24:56
...

LinkLink

luogu T145300luogu\ T145300

DescriptionDescription

【结论?】这是一颗树吗?

SampleSample InputInput

1

1 0

2

2 1 1

3

3 2 2 2

4

3 1 2 1

SampleSample OutputOutput

1

Possible

2

Possible

3

Impossible

4

Possible

HintHint

【结论?】这是一颗树吗?

SolutionSolution

就。。推着推着就发现一个结论???
sum=(n1)2sum = (n - 1 )* 2???
然后特判1啥的就没了

CodeCode

#include<iostream>
#include<cstdio>
#include<cmath>

using namespace std;

int n, sum, a[105], ans; 

int main()
{
	scanf("%d", &n);
	if (n == 1) {
		int x; 
		scanf("%d", &x);
		if (!x) printf("Possible");
		else printf("Impossible");
		return 0;
	}
	else {
		for (int i = 1; i <= n; ++i)
		{
			scanf("%d", &a[i]);
			if (a[i] <= 0) {
				printf("Impossible");
				return 0;
			}//判负
			if (a[i] == n) {
				printf("Impossible");
				return 0;
			} 
			ans += a[i];
		}
		if (ans / 2 == n - 1) printf("Possible");
		else printf("Impossible");
	}
	return 0;
}
相关标签: 其他