2011年8月20日 星期六

d092: 算式也可以比大小!?

內容 :
    一日,老師教到了數字的比大小,此時,某K想到了一種新的比較方式,如下:
    a+b=c
    但若a>b時,答案就變成[>c],
    若a=b時,答案就變成[=c],
    若a<b時,答案就變成[<c]。
    而[ >c ] > [ =c ] > [ <c ]


    例如:
    1+1=[=2]
    2+0=[>2]
    0+2=[<2] 


輸入說明 : 

    首先會先輸入要比較的n組算式(n<=1000),之後再輸入兩個正整數a和b,數字最大不會超過2^31-1。若n等於0即跳出。

輸出說明 :

    將a+b加起來後排序(大->小),並輸出。

範例輸入 :
5
1 5
5 1
3 3
4 5
5 6
0

範例輸出 :
<11 <9 >6 =6 <6

提示 :
延長數線。

程式碼 :
#include<stdio.h>

int main()
{
    int a,b,c[1000][2],i,j,k,n,temp;

    while(scanf("%d",&n)==1)
    {
        if(n == 0)
            break;
        
        for(i=0; i<n; i++)
        {
            scanf("%d %d",&a,&b);

            if(a > b)
                c[i][0] = 3;
            else if(a == b)
                c[i][0] = 2;
            else
                c[i][0] = 1;
            c[i][1] = a + b;
        }
        for(i=0; i<n; i++)
            for(j=i+1; j<n; j++)
                if((c[i][1] < c[j][1]) || ((c[i][1]==c[j][1]) && (c[i][0]<c[j][0])))
                    for(k=0; k<2; k++)
                    {
                        temp = c[i][k];
                        c[i][k] = c[j][k];
                        c[j][k] = temp;

                    }
        for(i=0; i<n; i++)
            printf("%c%d ",c[i][0]==1?'<':c[i][0]==2?'=':'>',c[i][1]);
        printf("\n");
    }
    return 0;
}


http://zerojudge.tw/ShowProblem?problemid=d092

沒有留言:

張貼留言