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

Обсуждение задачи 1220. Stacks

Could you tell me why i got Wrong.
Послано Cancer 20 ноя 2002 23:21

Const
  Maxa=1000;
  Maxn=100000;
Var
  ch:char;
  From:array[0..Maxn div 2] of longint;
  a:array[1..Maxa] of longint;
  num:array[1..Maxn] of longint;
  i,x,p,q,n,y,t,j:longint;

Procedure Push;
Begin
  inc(p);
  num[p]:=y;
  t:=p div 2;
  if odd(p) then
   from[t]:=from[t]+a[x] else
   from[t]:=from[t]+a[x]*Maxn;
  a[x]:=p;
ENd;

Procedure POP;
Begin
  writeln(num[a[x]]);
  t:=a[x] div 2;
  if odd(a[x]) then
   begin
     a[x]:=from[t] mod Maxn;
   end else
   begin
     a[x]:=from[t] div Maxn;
   end;
End;

Begin
  readln(n);
  fillchar(a,sizeof(a),0);
  fillchar(num,sizeof(num),0);
  p:=0;
  q:=0;
  repeat
    inc(q);
          while not(ch in ['U','O'] )do read(ch);
      if ch='U' then
        begin
          read(ch);
          read(ch);
          read(x,y);
          PUSH;
        end else
        if ch='O' then
        begin
          read(ch);
          read(x);
          POP;
        end;
      readln;

until q=n;
End.