Skip to content

Instantly share code, notes, and snippets.

@AlexErofeev
Created January 15, 2013 15:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AlexErofeev/4539653 to your computer and use it in GitHub Desktop.
Save AlexErofeev/4539653 to your computer and use it in GitHub Desktop.
-module(queue_slow).
-export([main/0]).
main() ->
loop().
large_queue(0) -> queue:new();
large_queue(N) -> queue:in(N, large_queue(N-1)).
pop(Q) -> {A, B} = queue:out(Q), B.
pop_r(Q) -> {A, B} = queue:out_r(Q), B.
funny_pop({[],[]}) -> true;
funny_pop(Q) -> funny_pop(pop_r(pop(Q))).
loop() ->
case io:fread( "","~d" ) of
eof ->
true;
{ok, X} ->
[Y] = X,
Q = large_queue(Y),
funny_pop(Q),
true
end.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment