POJ-1300-Door Man

来源:互联网 发布:全能数据人生txt下载 编辑:程序博客网 时间:2024/06/05 18:13

比较简单的欧拉回路判定,只是需要特殊处理下输入

代码:

#include<cstdio>#include<cstring>#include<iostream>using namespace std;const int maxn=1001;char str[maxn];int n,m,cnt[31];int main(){    while(gets(str)!=NULL)    {if(!strcmp(str,"ENDOFINPUT"))    break;        sscanf(str,"%*s%d%d",&m,&n);memset(cnt,0,sizeof(cnt));int ans=0;for(int i=0;i<n;i++){    gets(str);    int k=0,j;    while(sscanf(str+k,"%d",&j)==1)    {ans++;cnt[i]++;cnt[j]++;while(str[k]&&str[k]==' ')k++;while(str[k]&&str[k]!=' ')k++;    }}gets(str);int odd=0,even=0;for(int i=0;i<n;i++){    if(cnt[i]&1)odd++;    elseeven++;}if(!odd&&!m)    printf("YES %d\n",ans);else if(odd==2&&(cnt[m]&1)&&(cnt[0]&1)&&m)    printf("YES %d\n",ans);else    printf("NO\n");    }    return 0;}


原创粉丝点击