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

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

Why wrong answer5?????? See my code.
Послано Programmer 7 фев 2009 20:06
type pver=^tver;
     pe=^te;
     te=record
      e:pe;
      ver:pver;
     end;
     tver=record
      s:string;
      e:pe;
     end;
type trec=record
      s:string;
      ver:pver;
     end;
var i,n:word;
    s:string;
    pb,ver:pver;
    fir:boolean;
procedure add(s:string;ver:pver);
var e:pe;
    vt:pver;
begin
 if s='' then exit;
 e:=ver^.e;
 while e<>nil do begin
  if copy(s,1,pos('\',s)-1)=e^.ver^.s then begin
   delete(s,1,pos('\',s));
   add(s,e^.ver);
   exit;
  end;
  e:=e^.e;
 end;
 new(vt);
 vt^.e:=nil;
 if pos('\',s)>0 then vt^.s:=copy(s,1,pos('\',s)-1) else
 vt^.s:=s;
 new(e);
 e^.ver:=vt;
 e^.e:=ver^.e;
 ver^.e:=e;
 if pos('\',s)>0 then begin
  delete(s,1,pos('\',s));
  add(s,vt);
 end;
end;
procedure writ(ver:pver;ur:word);
var a:array [1..600] of trec;
    t:trec;
    kol,u,i:word;
    e:pe;
begin
 kol:=0;
 e:=ver^.e;
 while e<>nil do begin
  inc(kol);
  a[kol].s:=e^.ver^.s;
  a[kol].ver:=e^.ver;
  e:=e^.e;
 end;
 if kol=0 then exit;
 for u:=1 to kol-1 do
 for i:=1 to kol-u do if a[i].s>a[i+1].s then begin
  t:=a[i];
  a[i]:=a[i+1];
  a[i+1]:=t;
 end;
 for i:=1 to kol do begin
{  if not fir then writeln;
  fir:=false;}
  for u:=1 to ur do write(' ');
  writeln(a[i].s);
  writ(a[i].ver,ur+1);
 end;
end;
begin
 new(pb);
 pb^.e:=nil;
 readln(n);
 for i:=1 to n do begin
  readln(s);
  add(s,pb);
 end;
 fir:=true;
 writ(pb,0);
end.
Re: Why wrong answer5?????? See my code.
Послано Programmer 7 фев 2009 21:51
This test help me.
2
GAMES\GGG
GAMES
Re: Why wrong answer5?????? See my code.
Послано ░▒ Nguyễn Kim Vỹ ▒░ 23 июл 2010 16:55
Thanks your test!