2009-03-07 22:05:29來源不明

2007 NPSC D. MVP

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

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

#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;
}