2011年9月28日 星期三

d587: 參貳壹真好吃

內容 :
    參貳壹真是太好吃了!
    現在有一連串由1、2、3這三個數字組成的數列,
    請你把他們由小到大排好好嗎?

輸入說明 :
    本題有2個測資點,每個50分,每個測資點只有一組測資。
    第一行有整數n(1<=n<=1000000)代表接下來的數列有幾個數字
    第二行就是這n個包含1、2、3的數字

輸出說明 :
    對於每組測資,請輸出一行由小到大1~3排好的結果。

範例輸入 :
9
1 1 1 2 2 3 3 3 2

範例輸出 :
1 1 1 2 2 2 3 3 3

提示 :
    背景知識: 陣列
    對於兩個測資點…
    第一個測資點(50%)的n是3的倍數,並且1、2、3這三種元素的數量均等
    第二個測資點(50%)正常

程式碼 :
#include <stdio.h>

int main() 
{
    int i,j,n,num,arr[4];
    
    while(scanf("%d",&n)==1)
    {
        for(i=1;i<4;i++)
            arr[i] = 0;
        
        for(i=0;i<n;i++)
        {
            scanf("%d",&num);
            arr[num]++;
        }
        
        for(i=1;i<4;i++)
        {
            num = arr[i];
            for(j=0;j<arr[i];j++)
                printf("%d ",i);
        }
        printf("\n");
    }  
    return 0;
}




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

沒有留言:

張貼留言