题目地址:http://codevs.cn/problem/1055/
分析:
模拟
代码:
type qq=record
name:string;
num:longint;
end;
var a:array[1..100] of qq;
n,xb,i,j,max:longint;f:qq;t:boolean;s:string;
begin
readln(n);
for i:=1 to n do begin readln(s);t:=false;
for j:=1 to xb do if a[j].name=s then begin t:=true;inc(a[j].num);break;end;
if not t then begin inc(xb);a[xb].name:=s;inc(a[xb].num);end;end;writeln(xb);
for i:=1 to xb-1 do for j:=i+1 to xb do if a[i].name>a[j].name then begin f:=a[i];a[i]:=a[j];a[j]:=f;end;
while true do begin max:=0;
for i:=1 to xb do if a[i].num>max then max:=a[i].num;
if max=0 then halt;writeln(max);
for i:=1 to xb do if a[i].num=max then begin writeln(a[i].name);
a[i].num:=0;end;end;end.