Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program latihan2d_1;
- var
- a : array[0..99999] of longint;
- i,n : longint;
- kript : integer;
- h,t : longint;
- angka : longint;
- procedure baca(var kript : integer);
- var
- idx : integer;
- huruf : char;
- kata : string;
- kamus : array[0..3] of string = ('push_front','push_back','pop_front','pop_back');
- begin
- idx := 0;
- kata := '';
- read(huruf);
- while (huruf <> ' ') and (huruf <> char(26)) and (huruf <> char(10)) and (huruf <> char(13)) do begin
- kata := kata + huruf;
- read(huruf);
- end;
- while (idx <= 3) and (kript <> idx) do begin
- if kata = kamus[idx] then begin
- kript := idx;
- end;
- // writeln('menunggu');
- inc(idx);
- // writeln(idx,' ',kata);
- end;
- // writeln('selesai');
- // writeln(kript);
- end;
- procedure push_front(var angka, h,t : longint);
- begin
- if h = -1 then begin h := 0; t := 0; end else begin
- if h = 99999 then begin h := 0; end else begin
- h := h + 1;
- end;
- end;
- a[h] := angka;
- // writeln('h = ',h,' ',angka);
- end;
- procedure push_back(var angka,h,t : longint);
- begin
- // writeln(t,' kedua');
- if t = -1 then begin h := 0; t := 0; end else begin
- if t = 0 then begin t := 99999; end else begin
- t := t - 1;
- end;
- end;
- a[t] := angka;
- // writeln('t = ',t,' ',angka);
- end;
- procedure pop_front(var h,t : longint);
- begin
- if h <> -1 then begin
- if h = 0 then begin h := 99999 end else begin
- h := h - 1;
- end;
- end;
- // writeln('h = ',h,' ',angka);
- end;
- procedure pop_back(var h,t : longint);
- begin
- if t <> -1 then begin
- if t = 99999 then begin t := 0; end else begin
- t := t + 1;
- end;
- end;
- // writeln('t = ',t,' ',angka);
- end;
- procedure kirim(a : array of longint; h,t : longint);
- var
- u : longint;
- begin
- if t > h then begin
- for u := h downto 0 do begin
- writeln(a[u]);
- end;
- for u := 99999 downto t do begin
- writeln(a[u]);
- end;
- end else begin
- for u := h downto t do begin
- writeln(a[u]);
- end;
- end;
- end;
- begin
- readln(n);
- h := -1;
- t := -1;
- for i := 0 to 99999 do begin
- a[i] := 0;
- end;
- for i := 1 to n do begin
- kript := -1;
- baca(kript);
- case kript of
- 0: begin readln(angka); push_front(angka,h,t);
- end;
- 1: begin readln(angka); push_back(angka,h,t); end;
- 2: begin readln; pop_front(h,t); end;
- 3: begin readln; pop_back(h,t); end;
- end;
- // writeln(h,' ',t);
- end;
- kirim(a,h,t);
- end.
Add Comment
Please, Sign In to add comment