• <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>
            #include <stdio.h>
            #include 
            <stdlib.h>
            #include 
            <string.h>

            int len;
            int a, b, c;

            bool  visite[1001][1001],ok;
            int   front, rear;

            struct Node{
                
            int a, b,front;
                
            char oper;
                
                Node(){}
                Node( 
            int m, int n):a(m),b(n){}
                Node( 
            int m, int n, int c, char d ): a(m),b(n),front(c),oper(d) {}
            };

            Node queue[
            65535];

            void bfs()
            {
                front
            = -1, rear= 0;
                queue[
            0]= Node(00-1'z');
                
                
            while( front< rear )
                {
                    front
            ++;
                    
                    Node t
            = queue[front];
                    
            if( t.b== c ) {
                        len
            = front;
                        
            return; }
                    
                    
            int m= t.a, n= t.b;
                    
                    
            if( m> 0 && !visite[0][n] ) { queue[++rear]= Node( 0, n, front, 'a' );  visite[0][n]= true; }  // empty A
                    if( n> 0 && !visite[m][0] ) { queue[++rear]= Node( m, 0, front, 'b' );  visite[m][0]= true; }  // empty B
                    
                    
            if( m!= a && n> a- m && !visite[a][n+m-a] ) {                                     // pour B to A
                        queue[++rear]= Node( a, n+ m- a, front, 'c' ); visite[a][n+m-a]= true; }
                    
            else if( m!= a && n> 0 && m+ n<= a && !visite[m+n][0] ){
                         queue[
            ++rear]= Node( m+ n, 0, front, 'c' );   visite[m+n][0]= true; }
                    
                    
            if( n!= b && m> b- n && !visite[m+n-b][b] ){                                      // pour A to B
                         queue[++rear]= Node(  n+ m- b, b, front, 'd' );  visite[m+n-b][b]= true; }
                    
            else if( n!= b && m> 0 && n+ m<= b && !visite[0][m+n] ){
                         queue[
            ++rear]= Node( 0, m+ n, front, 'd' );     visite[0][m+n]= true; }
                    
                    
            if( m!= a && !visite[a][n] ) {  queue[++rear]= Node( a, n, front, 'e' );   visite[a][n]= true; }  // fill A
                    if( n!= b && !visite[m][b] ) {  queue[++rear]= Node( m, b, front, 'f' );   visite[m][b]= true; }  // fill B
                }
            }

            void print( int n )
            {
                
            if(  n== 0 ) return;
                
                print( queue[n].front );
                
            switch( queue[n].oper)
                {
                    
            case 'a':  puts("empty A");  break;
                    
            case 'b':  puts("empty B");  break;
                    
            case 'c':  puts("pour B A"); break;
                    
            case 'd':  puts("pour A B"); break;
                    
            case 'e':  puts("fill A"); break;
                    
            case 'f':  puts("fill B"); break;
                }
            }
                
            int main()
            {
                
            while( scanf("%d%d%d"&a, &b, &c)!= EOF )
                {
                    memset( visite, 
            falsesizeof(visite) );
                    visite[
            0][0]= true;
                    
                    bfs();
                    print( len );
                    puts(
            "success");
                }
                
                
            return 0;
            }
            posted on 2008-11-14 22:43 Darren 閱讀(538) 評論(1)  編輯 收藏 引用

            評論:
            # re: Zoj 1005 Jugs 2010-07-13 22:45 | Xiang
            此程序WA…  回復  更多評論
              
            久久久久亚洲av无码专区喷水| 久久99精品国产麻豆宅宅| 色99久久久久高潮综合影院| 亚洲国产成人久久一区WWW| 亚洲精品无码成人片久久| 久久国产精品成人片免费| 国产国产成人久久精品| 亚洲色婷婷综合久久| 91精品久久久久久无码| 久久久久久国产a免费观看黄色大片 | 91久久精品国产成人久久| 久久毛片免费看一区二区三区| 精品国产乱码久久久久软件| 久久亚洲综合色一区二区三区| 久久AV无码精品人妻糸列| 久久中文娱乐网| 久久久老熟女一区二区三区| 日韩欧美亚洲国产精品字幕久久久| 亚洲香蕉网久久综合影视| 午夜视频久久久久一区 | 国产∨亚洲V天堂无码久久久| 久久青青草原精品国产软件| 精品久久久久久亚洲精品| 狠狠色丁香久久婷婷综合蜜芽五月 | 亚洲欧美精品一区久久中文字幕| 久久久久成人精品无码中文字幕| 久久亚洲2019中文字幕| 日本精品久久久久中文字幕8| 色欲综合久久躁天天躁蜜桃 | 久久精品国产亚洲77777| 久久AV无码精品人妻糸列| 狠狠色丁香久久婷婷综合图片| 国内精品伊人久久久久网站| 97久久精品人妻人人搡人人玩| 性欧美丰满熟妇XXXX性久久久 | 国产成人综合久久久久久| 久久99中文字幕久久| 精品久久777| 精品久久久久久无码人妻蜜桃| 久久久久97国产精华液好用吗| 久久e热在这里只有国产中文精品99|