24h購物| | PChome| 登入
2009-03-07 22:05:29| 人氣383| 回應0 | 上一篇 | 下一篇

2007 NPSC D. MVP

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

題目看似簡單,但是還是要輸出名字會瘋掉,所以我就用陣列去存我之前存在哪裡@@

寫到瘋掉!!/************************************************************/

#include<stdlib.h>     
#include<stdio.h>
main()
{
 char pb[5];
 int n,m,a,c,d;
 while(scanf("%d",&n)==1)
  {
   while(n--)
    {
     scanf("%d ",&m);/*神奇的空格*/
     char namepb[1001][100];
     float f[1001][4];
     int namep[1001],nameb[1001],p=0,b=0;
     for(a=0;a<m;a++)
      {
       scanf("%s %s %f %f %f",pb,&namepb[a],&f[a][0],&f[a][1],&f[a][2]);
       if(pb[0]=='P')
        { namep[p]=a;p++; } /*名字的儲存位置 以及打擊...*/
       else
        { nameb[b]=a;b++; }
      }
     for(a=0;a<p-1;a++)
      {
       c=a;
       for(d=a+1;d<p;d++)
        if(f[namep[d]][0]>f[namep[c]][0]||(f[namep[d]][0]==f[namep[c]][0]&&f[namep[d]][1]<f[namep[c]][1])||(f[namep[d]][0]==f[namep[c]][0]&&f[namep[d]][1]==f[namep[c]][1]&&f[namep[d]][2]<f[namep[c]][2]))
         c=d;
       if(c!=a)
        {
         int temp3;
         temp3=namep[c];
         namep[c]=namep[a];
         namep[a]=temp3;
        }
       printf("P %s\n",namepb[namep[a]]);
      }
      printf("P %s\n",namepb[namep[a]]);
     for(a=0;a<b-1;a++)
      {
       c=a;
       for(d=a+1;d<b;d++)
       if(f[nameb[d]][0]>f[nameb[c]][0]||(f[nameb[d]][0]==f[nameb[c]][0]&&f[nameb[d]][1]>f[nameb[c]][1])||(f[nameb[d]][0]==f[nameb[c]][0]&&f[nameb[d]][1]==f[nameb[c]][1]&&f[nameb[d]][2]>f[nameb[c]][2]))
         c=d;
       if(c!=a)
        {
         int temp3;
         temp3=nameb[c];
         nameb[c]=nameb[a];
         nameb[a]=temp3;
        }
       printf("B %s\n",namepb[nameb[a]]);
      }
     printf("B %s\n",namepb[nameb[a]]);
     if(n!=0)
     printf("=====\n");
    }
  }
 return 0;
}

台長: 來源不明
人氣(383) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 數位資訊(科技、網路、通訊、家電) | 個人分類: NPSC |
此分類下一篇:2007 NPSC E. 東方幻想鄉
此分類上一篇:2008 NPSC G. 獎金

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