4 7
Loudy
Apples
Dogman
Miller
.X..
X...
....
..X.
..XX
..X.
..X.
输出样例:
Dogman 42.86%
Loudy 14.29%
Apples 14.29%
Miller 0.00%
Invalid 28.57%
数据范围
100%的数据,n<=10,m<=1000
解题思路
就是一个多关键字排序,但要看清题目要求,以及Pascal的五舍六入。。。
type
note=record
na:string;
da,x:longint;
end;
var
a:array[0..100] of note;
s:string;
n,m,i,j,k,t:longint;
begin
readln(n,m);
for i:=1to n dobegin
readln(a[i].na);
a[i].x:=i;
end;
a[n+1].na:='Invalid';
for i:=1to m dobegin
readln(s);
t:=n+2;
for j:=1to length(s) doif (s[j]='X') thenif (t=n+2) then t:=j
else t:=n+1;
if (t=n+2) then t:=n+1;
inc(a[t].da);
end;
for i:=1to n-1dofor j:=i+1to n doif (a[i].da<a[j].da) or ((a[i].da=a[j].da) and (a[i].x>a[j].x)) thenbegin
a[0]:=a[i];
a[i]:=a[j];
a[j]:=a[0];
end;
for i:=1to n+1do
writeln(a[i].na,' ',trunc(a[i].da*10000/m+0.5)/100:0:2,'%');
end.