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 WiToA at 2005-11-14 16:18:31 on Problem 1013
In Reply To:为什么总是runtime error Posted by:windy4573 at 2005-11-13 21:05:19
program p1013;
var
  ch    :array[1..12]of boolean;
  st    :array[1..3]of string;
  temp  :string;
  n,i,j :integer;
  flag  :boolean;
  o     :char;

procedure doit;
  var
    i,j,k,len,w:integer;
    s1,s2,s:string;

procedure search(ss:string;kind:integer);
  var
    k,len:integer;
  begin
    k:=1;len:=length(ss);
    while k<=len do
      begin
        if ch[ord(ss[k])-64]<>true
          then begin
                 o:=ss[k];
                 if ((s='up')and(kind=1))or((s='down')and(kind=2))
                   then flag:=false
                   else flag:=true;
                 exit;
               end;
        inc(k);
      end;
  end;

  begin
    for i:=1 to 2 do
      if pos('even',st[i])=0 then
        for j:=i+1 to 3 do
          if pos('even',st[j])<>0 then
            begin
              temp:=st[j];st[j]:=st[i];st[i]:=temp;
              break;
            end;
    i:=1;
    while i<=3 do
      begin
        if pos('even',st[i])<>0 then
          begin
            k:=0;
            j:=1;
            while k<2 do
              begin
                if st[i,j]<>' '
                  then begin
                         w:=ord(st[i,j])-64;
                         ch[w]:=true;
                       end
                  else inc(k);
                inc(j);
              end;
          end else
          begin
            s:=st[i];
            k:=pos(' ',s);
            s1:=copy(st[i],1,k-1);
            len:=length(s1);
            delete(s,1,k);
            k:=pos(' ',s);
            s2:=copy(s,1,k-1);
            delete(s,1,k);
            k:=1;
            search(s1,1);
            search(s2,2);
          end;
        inc(i);
      end;
  end;

begin
  readln(n);
  repeat
    fillchar(ch,sizeof(ch),false);
    for i:=1 to 3 do
      readln(st[i]);
    doit;
    write(o,' is the counterfeit coin and it is ');
    if flag
      then writeln('light.')
      else writeln('heavy.');
    dec(n);
  until n=0;
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