Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

Re:牛们来看看……本菜WA了……

Posted by skywalker_q at 2009-07-29 22:11:41 on Problem 1002
In Reply To:牛们来看看……本菜WA了…… Posted by:skywalker_q at 2009-07-29 22:09:46
>   const
>     list:array['A'..'Z']of char=
>     ('2','2','2','3','3','3','4',
>      '4','4','5','5','5','6','6',
>      '6','7','-','7','7','8','8',
>      '8','9','9','9','-');
> 
>   var
>     n:longint;
>     a:array[1..100000]of longint;
> 
>   procedure init;
>     var
>       i,j,l:longint;
>       s:string;
>     begin
>       readln(n);
>       for i:=1 to n do
>         begin
>           readln(s);
>           l:=length(s);
>           for j:=1 to l do
>             if s[j] in ['A'..'Z'] then
>               s[j]:=list[s[j]];
>           a[i]:=0;
>           for j:=1 to l do
>             if s[j] in ['0'..'9'] then
>                a[i]:=a[i]*10+ord(s[j])-48;
>         end;
>       randomize;
>     end;
> 
>   procedure qsort(l,r:longint);
>     var
>       i,j,x,temp:longint;
>     begin
>       i:=l; j:=r;
>       x:=a[l+random(r-l+1)];
>       repeat
>         while a[i]<x do inc(i);
>         while a[j]>x do dec(j);
>         if i<=j then
>           begin
>             temp:=a[i];
>             a[i]:=a[j];
>             a[j]:=temp;
>             inc(i);
>             dec(j);
>           end;
>       until i>j;
>       if l<j then qsort(l,j);
>       if i<r then qsort(i,r);
>     end;
> 
>   procedure print;
>     var
>       flag:boolean;
>       i,count,last:longint;
>     begin
>       flag:=false;
>       last:=a[1];
>       count:=1;
>       for i:=2 to n do
>         begin
>           if a[i]=last then
>             begin
>               inc(count);
>               continue;
>             end
>           else
>             begin
>               if count>1 then
>                 begin
>                   writeln(last div 10000,'-',last mod 10000,' ',count);
>                   flag:=true;
>                 end;
>               count:=1;
>               last:=a[i];
>             end;
>         end;
>       if not flag then writeln('No duplicates');
>     end;
> 
>   begin
>     init;
>     qsort(1,n);
>     print;
>   end.
到底错哪里了?

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator