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

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

Posted by skywalker_q at 2009-07-29 22:09:46 on Problem 1002
  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