ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1067. Структура папок

HELP WA6
Послано +FAMAS+ 14 янв 2006 03:16
type
str = string;
var
  a:array[1..500] of str;
  i,j,n,t,p,f,l:integer;
  s:str;
function sort(t1,t2:integer):boolean;
var
i,n:integer;
begin
i:=0;
sort:=false;
if length(a[t1])>length(a[t2]) then n:=length(a[t2]) else n:=length(a[t1]);
while i<n  do
   begin
   inc(i);
   if ((a[t1][i]>a[t2][i]) and ((a[t1][i]<>'\') and (a[t2][i]<>'\')))
   or ((a[t2][i]='\') and (a[t1][i]<>'\')) then
        begin
          s:=a[t1];
          a[t1]:=a[t2];
          a[t2]:=s;
          i:=n;
          sort:=true;
        end else
   if (a[t1][i]<a[t2][i]) or ((a[t1][i]='\') and (a[t2][i]<>'\')) then i:=n
   end;
end;
procedure kor(k:str; z:integer);
var
i:integer;
begin
   t:=1;
   for i:=1 to length(k) do
   if k[i]='\' then
     begin
      s:=copy(k,t,i-t);
      t:=i+1;
      writeln(s:(length(s)+z));
      inc(z);
     end;
end;
begin
{   assign(input,'c:\test.txt'); reset(input);}
   readln(n);
   for i:=1 to n do begin readln(a[i]); a[i]:=a[i]+'\'; end;
   i:=0;
   while i<n-1 do
   begin
    inc(i);
    if sort(i,i+1) then i:=0;
   end;
   kor(a[1],0);
   for i:=2 to n do
     begin
       t:=0; f:=0;
       if length(a[i-1])<length(a[i]) then l:=length(a[i]) else l:=length(a[i-1]);
       for j:=1 to l do
         if a[i][j]<>a[i-1][j] then break
         else if a[i][j]='\' then begin t:=j; inc(f); end;
       s:=a[i];
       if t=0 then kor(s,t) else begin  delete(s,1,t); kor(s,f); end;
     end;
 {  close(input);}
end.

and if i change str = string => str = string[90] i have wa5?!!!!
i have AC:)
Послано +FAMAS+ 14 янв 2006 03:47
but
and if i change str = string => str = string[90] i have wa5?!!!!