24h購物| | PChome| 登入
2009-03-01 09:36:09| 人氣529| 回應0 | 上一篇 | 下一篇

ACM 11369 11369 - Shopaholic

推薦 0 收藏 0 轉貼0 訂閱站台

/*************************************************************/

#include<stdio.h>
#include<stdlib.h>
main()
{
 int n,m;
 scanf("%d",&n);
 while(n--)
  {
   int a,b,c;
   scanf("%d",&m);
   int math[20001]={0},x;
   for(a=0;a<m;a++)
    {
    scanf("%d",&x);
     math[x]++;
    }
   int ans=0,flag=0;
    for(a=20000;a>=0;a--)
     {
      flag=flag+(math[a]>0);
      if(flag==3)
       {
        ans=ans+a;
        flag=0;
       }
       if(math[a]>0)
       math[a]--;
       if(math[a]>0)
         {a++;}
     }
    printf("%d\n",ans);
  }
 return 0;
}

/***********************************************/

輸入很多,來個優化輸入吧!

#include<stdio.h>
#include<stdlib.h>
int input()  
{  
  char cha;  
  int x=0;  
  while(cha=getchar())  
     if(cha!=' '&&cha!='\n') break;  
  x=cha-48;  
  while(cha=getchar())   
    {  
     if(cha==' '||cha=='\n') break;  
      x=x*10+cha-48;  
    }  
    return x;  
}
main()  
{  
 int n,m;  
 scanf("%d",&n);  
 while(n--)  
  {  
   int a,b,c;  
   m=input(); 
   int math[20001]={0},x;  
   for(a=0;a<m;a++)  
    {  
     x=input();
     math[x]++;  
    }  
   int ans=0,flag=0;  
    for(a=20000;a>=0;a--)  
     {  
      flag=flag+(math[a]>0);  
      if(flag==3)  
       {  
        ans=ans+a;  
        flag=0;  
       }  
       if(math[a]>0)  
       math[a]--;  
       if(math[a]>0)  
         {a++;}  
     }  
    printf("%d\n",ans);   
  }  
 return 0;  

台長: 來源不明
人氣(529) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 數位資訊(科技、網路、通訊、家電) | 個人分類: ACM |
此分類下一篇:ACM 350 Pseudo-Random Numbers
此分類上一篇:ACM 340 Q340: Master-Mind Hints

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文