POJ 1300 Open Door

Posted on 2016-01-02 15:56  ziliuziliu  阅读(118)  评论(0编辑  收藏  举报

不写了。。。欧拉通路。读入太迷。

  1. #include <stdio.h>  
  2. #include <string.h>  
  3. #define N 101  
  4.   
  5. int main()  
  6. {  
  7.     char s[200];  
  8.     int door,de[N],odd,eve,n,m,p,cc,len,k;  
  9.     while(scanf("%s",s) != EOF)  
  10.     {  
  11.         if(s[3] == 'O')  
  12.             break;  
  13.         scanf("%d %d",&m,&n); ///这里如歌scanf("%d %d\n",&m,&n) 一直WA  
  14.         getchar();            ///  
  15.         memset(de,0,sizeof(de));  
  16.         door = odd = eve = 0;  
  17.         for(int i = 0; i < n; ++i)  
  18.         {  
  19.             p = 0;  
  20.             gets(s);  
  21.             while(s[p] && s[p] == ' ') ++ p;  
  22.             while(sscanf(s + p,"%d%n",&k,&cc) == 1)  
  23.             {  
  24.                 ++door;  
  25.                 de[i] ++;  
  26.                 de[k] ++;  
  27.                 p += cc;  
  28.                 while(s[p] && s[p] == ' ') ++ p;  
  29.             }  
  30.         }  
  31.         scanf("%*s");  
  32.         for(int i = 0; i < n; ++i)  
  33.             if(de[i]&1)  
  34.                 ++odd;  
  35.             else  
  36.                 ++eve;  
  37.         if(odd == 0 && m == 0 || odd == 2 && (de[m]&1) && (de[0] & 1) && m != 0)  
  38.             printf("YES %d\n",door);  
  39.         else  
  40.             printf("NO\n");  
  41.     }  
  42.     return 0;}