close

在一個2x2的格子圖形中,有三艘各佔一個格子的戰艦,戰艦的位置均在格子的範圍內。三艘戰艦重量皆不同,從1噸到3噸各有一艘,因為大霧瀰漫不知正確位置,僅知道每一列與每一行的總重量,請問聰明的你,知道每一艘戰艦的正確位置嗎?
舉例來說,如果我們知道每一列與每一行的總重量如下圖:
1.JPG

那麼這個戰艦謎題的一組正確答案如下圖:
2.JPG

注意:我們給的輸入資料不一定只有一組正確答案,這時候你只需輸出其中一組正確答案即可。此外,我們給的輸入資料有可能沒有正確的答案,這時候只需輸出"No solutions."即可。

輸入說明 :

總共有四個整數,每個數值間以一個空白字元隔開,這些數字個值均介於0到5之間。前2個整數依序表示每一列(row)的總重量,接下來的2個整數依序表示每一行(column)的總重量。

範例輸出 :

輸出範例一: 3 2 1 0
輸出範例二: 0 3 1 2
 輸出範例三: No solutions.



 


 

 

 

 

 

#include<stdio.h> 
int a,b,c,d,e; 
int a1,b1,c1,d1;
void main()
{
   while(scanf("%d %d %d %d",&a,&b,&c,&d)!=EOF)
        {
            
         e=0;   
         for(a1=0;a1<=a;a1++)     
            {
                
            b1=a-a1;             
            c1=c-a1;                              
            d1=b-c1;                               
            
            if(b1+d1==d&&a1>=0&&d1>=0&&b1>=0&&c1>=0) 
            if(a1!=b1&&b1!=c1&&c1!=d1&&d1!=a1)
            if(a1==0||b1==0||c1==0||d1==0)
            if(a1==3||b1==3||c1==3||d1==3)      
            if(a1==2||b1==2||c1==2||d1==2)      
            if(a1==1||b1==1||c1==1||d1==1)      
              {           
               printf("%d %d\n%d %d\n",a1,b1,c1,d1);
               e++; 
               break; 
              }

            }


            if(e==0)
           printf("No solutions.\n");


         } 
return 0;
}



arrow
arrow
    全站熱搜
    創作者介紹
    創作者 彩虹 的頭像
    彩虹

    小酌C語言

    彩虹 發表在 痞客邦 留言(0) 人氣()