ENG  RUSTimus Online Judge
Online Judge
Problems
Authors
Online contests
About Online Judge
Frequently asked questions
Site news
Webboard
Links
Problem set
Submit solution
Judge status
Guide
Register
Update your info
Authors ranklist
Current contest
Scheduled contests
Past contests
Rules
back to board

Discussion of Problem 1067. Disk Tree

Why my program get 'Compilation error'?Could someone help me?
Posted by wujiajun 27 Nov 2007 09:46
My program works well on my own computer with Free Pascal IDE 2.2.0. But when I submitted it, it got 'Compilation error'. I'm really confused. Could someone help me? Thanks.
Re: Why my program get 'Compilation error'?Could someone help me?
Posted by rGV 27 Nov 2007 22:42
check is "uses" in your program
Re: Why my program get 'Compilation error'?Could someone help me?
Posted by wujiajun 28 Nov 2007 19:03
I didn't use any 'uses'...
Here is my program:

var
 s,f: array [0..500] of string;
 i,j,k,n,t: longint;
 tmp: string;

function compare(var a,b: string): boolean;
var i: longint;
begin
 i:=0;
 while (i<length(a)) and (i<length(b)) do begin
  inc(i);
  if (a[i]='\') and (b[i]<>'\') then begin
   compare:=false; exit;
  end;
  if (a[i]<>'\') and (b[i]='\') then begin
   compare:=true; exit;
  end;
  if a[i]<b[i] then begin
   compare:=false; exit;
  end
  else if a[i]>b[i] then begin
   compare:=true; exit;
  end;
 end;
 if i=length(a) then compare:=false
                else compare:=true;
end;

function check(var s: string): longint;
begin
 check:=1;
 while (f[check]<>'') and ((f[check]+'\')=copy(s,1,length(f[check])+1)) do begin
  delete(s,1,length(f[check])+1); inc(check);
 end;
end;

begin
 readln(n);
 for i:=1 to n do readln(s[i]);
 for i:=1 to n-1 do
  for j:=i+1 to n do
   if compare(s[i],s[j]) then begin
    tmp:=s[i]; s[i]:=s[j]; s[j]:=tmp;
   end;
 for i:=1 to n do begin
  k:=check(s[i]);
  while s[i]<>'' do begin
   t:=pos('\',s[i]);
   if t=0 then begin
    s[i]:=s[i]+'\'; t:=length(s[i]);
   end;
   f[k]:=copy(s[i],1,t-1);
   for j:=1 to k-1 do write(' ');
   writeln(f[k]); inc(k);
   delete(s[i],1,t);
  end;
 end;
end.