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;
}
上一篇:2008 NPSC G. 獎金