admin管理员组文章数量:1602097
描述:因为是简单图,所以先判断角度和是否为偶数,然后再需要用优先队列,从大到小进行排除
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <queue>
using namespace std;
priority_queue <int> p;
int num[10010];
int main()
{
// freopen("a.txt","r",stdin);
int n;
while(scanf("%d",&n)!=EOF)
{
if(!n) break;
int sum=0,x;
while(!p.empty()) p.pop();
for(int i=0; i<n; i++)
{
scanf("%d",&x);
if(x%2==1) sum++;
if(sum%2==0) sum=0;
if(x) p.push(x);
}
if(!sum)
{
while(!p.empty())
{
x=0;
int c=p.top();
p.pop();
while(!p.empty())
{
if(c==0) break;
if(p.top()>0)
{
num[x++]=p.top()-1;
c--;
p.pop();
}
}
if(c>0)
{
sum=1;
break;
}
for(int i=0; i<x; i++) if(num[i]>0) p.push(num[i]);
}
if(!sum) printf("Possible\n");
else printf("Not possible\n");
}
else printf("Not possible\n");
}
return 0;
}
本文标签: Graphconstruction
版权声明:本文标题:10720 - Graph Construction 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1728397327a1157161.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论