| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
我的程序老是WA,请高手帮忙看一下!program p1002;
const ttt:array['A'..'Z'] of integer=(2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,7,8,8,8,9,9,9,9);
var t:array[1..1200] of longint;
n,pp,i:longint;
cm:string;
procedure out(k,num:longint);
var s1,s:string;
d,l:longint;
begin
s1:='';
s:='';
str(k,s1);
while length(s1)<7 do s1:=' '+s1;
s:=copy(s1,1,3)+'-'+copy(s1,4,4)+' ';
writeln(s,num);
end;
procedure init;
var i,j,k,l:longint;
cmd:string[100];
begin
cm:='No duplicates.';
readln(n);
pp:=0;
fillchar(t,sizeof(t),0);
cmd:='';
for i:=1 to n do
begin
readln(cmd);
j:=0;
k:=0;l:=length(cmd);
repeat
inc(j);
if cmd[j]='-' then continue;
k:=k*10;
if cmd[j] in ['0'..'9'] then
k:=k+ord(cmd[j])-48
else k:=k+ttt[cmd[j]];
until j>=l;
inc(pp);
t[pp]:=k;
end;
randomize;
end;
procedure qsort(i,j:longint);
var med,nj,ni,k:longint;
begin
ni:=i; nj:=j;
med:=t[(i+j) div 2];
repeat
while t[ni]<med do ni:=ni+1;
while t[nj]>med do nj:=nj-1;
if ni<=nj then
begin
k:=t[ni];t[ni]:=t[nj];t[nj]:=k;
inc(ni); dec(nj);
end;
until ni>nj;
if i<nj then qsort(i,nj);
if j> ni then qsort(ni,j);
end;
procedure main;
var i,j,k:longint;
ans:boolean;
begin
ans:=false;
i:=0;j:=0;
repeat
inc(i);
if t[i]<>t[i+1] then begin
if j<>0 then begin ans:=true;out(t[i],j+1);end;
j:=0;
end
else inc(j);
until i=n;
if not ans then begin
writeln(cm);
end;
end;
begin
init;
i:=0;
while (t[i]<t[i+1]) or (t[i]=t[i+1]) do inc(i);
if i<>n+1 then qsort(1,n);
main;
end.
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator