• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            T9的空間

            You will never walk alone!

              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              69 隨筆 :: 0 文章 :: 28 評論 :: 0 Trackbacks
            Source Code

            Problem: 
            1094  User: Torres 
            Memory: 224K  Time: 32MS 
            Language: C
            ++  Result: Accepted 

            Source Code 
            #include
            <iostream>
            #include
            <algorithm>
            #include
            <vector>

            using namespace std;

            #define N 30

            vector
            <vector<int> > G(N);
            int re[N];

            int Top_sort(vector<vector<int> >G,int n,int *de)
            {
                
            //out<<"www"<<endl;
                int i,j,k;
                memset(re,
            0,sizeof(re));
                
            int cnt=0;
                
            int flag1=0;
                
            for(i=0;i<n;i++)
                
            {
                    
            int flag=0;
                    
            for(j=0;j<n;j++)
                    
            {
                        
            if(de[j]==0)  
                        
            {
                            flag
            =1;
                            
            for(k=j+1;!flag1&&k<n;k++)
                                
            if(de[k]==0)
                                
            {
                                    flag1
            =1;
                                    
            break;
                                }

                                
            //說明有兩個可供選擇的點那么就會產生不同的排列
                            re[cnt++]=j;
                            de[j]
            =-1;
                            
            int len=G[j].size();
                            
            for(k=0;k<len;k++)
                                
            if(de[G[j][k]]>0) de[G[j][k]]--;
                            
            break;
                        }

                    }

                    
            if(!flag) return 1;//矛盾
                }

                
            if(flag1) return -1;//不確定
                return 0;//正常
            }


            int main()
            {
                
            int n,m,i;
                
            char s[4];
                
            //freopen("in.txt","r",stdin);
                while(scanf("%d%d",&n,&m))
                
            {
                    
            if(n==0&&m==0break;
                    
            int de[N]={0},d[N];
                    
            int t;
                    
            for(t=1;t<=m;t++)
                    
            {
                        scanf(
            "%s",s);
                        G[s[
            0]-'A'].push_back(s[2]-'A');
                        de[s[
            2]-'A']++;
                    
            //    for(i=0;i<n;i++)
                    
            //        cout<<de[i]<<endl;
                        memcpy(d,de,sizeof(de));
                        
            int ans=Top_sort(G,n,d);
                        
            if(ans==1)
                        
            {
                            printf(
            "Inconsistency found after %d relations.\n",t);
                            
            while(t<m) scanf("%s",s),t++;
                        }

                        
            else if(ans==0)
                        
            {
                            printf(
            "Sorted sequence determined after %d relations: ",t);
                            
            for(i=0;i<n;i++)
                                printf(
            "%c",re[i]+'A');
                            printf(
            ".\n");
                            
            while(t<m) scanf("%s",s),t++;
                        }

                        
            else if(t==m&&ans==-1)
                            printf(
            "Sorted sequence cannot be determined.\n");

                    }

                    
            for(i=0;i<n;i++)
                        G[i].clear();
                }

                
            return 0;
            }

            posted on 2008-10-20 22:18 Torres 閱讀(347) 評論(0)  編輯 收藏 引用 所屬分類: Data Structures
            久久成人国产精品免费软件| 久久精品免费观看| 偷窥少妇久久久久久久久| 一级a性色生活片久久无少妇一级婬片免费放| 久久国产V一级毛多内射| 久久人人爽人人爽人人片AV不| 色婷婷久久综合中文久久蜜桃av| 九九久久99综合一区二区| 久久毛片一区二区| 91精品免费久久久久久久久| 精品伊人久久大线蕉色首页| 99久久精品费精品国产| 亚洲欧美伊人久久综合一区二区 | 偷窥少妇久久久久久久久| 国产精品久久久久久久久免费 | 一本一道久久a久久精品综合| 久久99精品国产自在现线小黄鸭| 国产高潮国产高潮久久久91| 久久久久久国产精品美女| 久久精品国产一区二区 | 久久久久亚洲AV无码专区网站| 欧美丰满熟妇BBB久久久| 久久99热这里只频精品6| 久久99国产一区二区三区| 久久精品国产亚洲AV电影 | 久久久久青草线蕉综合超碰| 久久天天躁狠狠躁夜夜2020老熟妇| 国产精品久久久久AV福利动漫| 老男人久久青草av高清| 天天综合久久一二三区| 久久精品国产99久久久香蕉| 久久精品国产半推半就| 99久久无码一区人妻a黑| 久久亚洲精品人成综合网| 91麻豆国产精品91久久久| 三级片免费观看久久| 久久久久亚洲AV成人网人人网站| 国产精品成人99久久久久91gav| AV无码久久久久不卡网站下载| 久久99精品久久久久久久久久| 亚洲AV日韩精品久久久久|