Thanks for using Compiler Explorer
Sponsors
Jakt
C++
Ada
Algol68
Analysis
Android Java
Android Kotlin
Assembly
C
C3
Carbon
C with Coccinelle
C++ with Coccinelle
C++ (Circle)
CIRCT
Clean
CMake
CMakeScript
COBOL
C++ for OpenCL
MLIR
Cppx
Cppx-Blue
Cppx-Gold
Cpp2-cppfront
Crystal
C#
CUDA C++
D
Dart
Elixir
Erlang
Fortran
F#
GLSL
Go
Haskell
HLSL
Hook
Hylo
IL
ispc
Java
Julia
Kotlin
LLVM IR
LLVM MIR
Modula-2
Mojo
Nim
Numba
Nix
Objective-C
Objective-C++
OCaml
Odin
OpenCL C
Pascal
Pony
PTX
Python
Racket
Raku
Ruby
Rust
Sail
Snowball
Scala
Slang
Solidity
Spice
SPIR-V
Swift
LLVM TableGen
Toit
Triton
TypeScript Native
V
Vala
Visual Basic
Vyper
WASM
Zig
Javascript
GIMPLE
Ygen
sway
ada source #1
Output
Compile to binary object
Link to binary
Execute the code
Intel asm syntax
Demangle identifiers
Verbose demangling
Filters
Unused labels
Library functions
Directives
Comments
Horizontal whitespace
Debug intrinsics
Compiler
S390X GNAT 11.2.0
S390X GNAT 12.1.0
S390X GNAT 12.2.0
S390X GNAT 12.3.0
S390X GNAT 12.4.0
S390X GNAT 12.5.0
S390X GNAT 13.1.0
S390X GNAT 13.2.0
S390X GNAT 13.3.0
S390X GNAT 13.4.0
S390X GNAT 14.1.0
S390X GNAT 14.2.0
S390X GNAT 14.3.0
S390X GNAT 15.1.0
S390X GNAT 15.2.0
arm gnat 10.3.0-2 (Alire)
arm gnat 11.2.0-3 (Alire)
arm gnat 13.1.0
arm gnat 13.2.0
arm gnat 13.3.0
arm gnat 13.4.0
arm gnat 14.1.0
arm gnat 14.2.0
arm gnat 14.3.0
arm gnat 15.1.0
arm gnat 15.2.0
arm64 gnat 12.1.0
arm64 gnat 12.2.0
arm64 gnat 12.3.0
arm64 gnat 12.4.0
arm64 gnat 12.5.0
arm64 gnat 13.1.0
arm64 gnat 13.2.0
arm64 gnat 13.3.0
arm64 gnat 13.4.0
arm64 gnat 14.1.0
arm64 gnat 14.2.0
arm64 gnat 14.3.0
arm64 gnat 15.1.0
arm64 gnat 15.2.0
hppa gnat 14.2.0
hppa gnat 14.3.0
hppa gnat 15.1.0
hppa gnat 15.2.0
loongarch64 gnat 14.1.0
loongarch64 gnat 14.2.0
loongarch64 gnat 14.3.0
loongarch64 gnat 15.1.0
loongarch64 gnat 15.2.0
mips gnat 11.2.0
mips gnat 12.1.0
mips gnat 12.2.0
mips gnat 12.3.0
mips gnat 12.4.0
mips gnat 12.5.0
mips gnat 13.1.0
mips gnat 13.2.0
mips gnat 13.3.0
mips gnat 13.4.0
mips gnat 14.1.0
mips gnat 14.2.0
mips gnat 14.3.0
mips gnat 15.1.0
mips gnat 15.2.0
mips64 gnat 11.2.0
mips64 gnat 12.1.0
mips64 gnat 12.2.0
mips64 gnat 12.3.0
mips64 gnat 12.4.0
mips64 gnat 12.5.0
mips64 gnat 13.1.0
mips64 gnat 13.2.0
mips64 gnat 13.3.0
mips64 gnat 13.4.0
mips64 gnat 14.1.0
mips64 gnat 14.2.0
mips64 gnat 14.3.0
mips64 gnat 15.1.0
mips64 gnat 15.2.0
powerpc gnat 11.2.0
powerpc gnat 12.1.0
powerpc gnat 12.2.0
powerpc gnat 12.3.0
powerpc gnat 12.4.0
powerpc gnat 12.5.0
powerpc gnat 13.1.0
powerpc gnat 13.2.0
powerpc gnat 13.3.0
powerpc gnat 13.4.0
powerpc gnat 14.1.0
powerpc gnat 14.2.0
powerpc gnat 14.3.0
powerpc gnat 15.1.0
powerpc gnat 15.2.0
powerpc64 gnat 11.2.0
powerpc64 gnat 12.1.0
powerpc64 gnat 12.2.0
powerpc64 gnat 12.3.0
powerpc64 gnat 12.4.0
powerpc64 gnat 12.5.0
powerpc64 gnat 13.1.0
powerpc64 gnat 13.2.0
powerpc64 gnat 13.3.0
powerpc64 gnat 13.4.0
powerpc64 gnat 14.1.0
powerpc64 gnat 14.2.0
powerpc64 gnat 14.3.0
powerpc64 gnat 15.1.0
powerpc64 gnat 15.2.0
powerpc64 gnat trunk
powerpc64le gnat 11.2.0
powerpc64le gnat 12.1.0
powerpc64le gnat 12.2.0
powerpc64le gnat 12.3.0
powerpc64le gnat 12.4.0
powerpc64le gnat 12.5.0
powerpc64le gnat 13.1.0
powerpc64le gnat 13.2.0
powerpc64le gnat 13.3.0
powerpc64le gnat 13.4.0
powerpc64le gnat 14.1.0
powerpc64le gnat 14.2.0
powerpc64le gnat 14.3.0
powerpc64le gnat 15.1.0
powerpc64le gnat 15.2.0
powerpc64le gnat trunk
riscv64 gnat 10.3.0-2 (Alire)
riscv64 gnat 11.2.0-3 (Alire)
riscv64 gnat 12.3.0
riscv64 gnat 12.4.0
riscv64 gnat 12.5.0
riscv64 gnat 13.1.0
riscv64 gnat 13.2.0
riscv64 gnat 13.3.0
riscv64 gnat 13.4.0
riscv64 gnat 14.1.0
riscv64 gnat 14.2.0
riscv64 gnat 14.3.0
riscv64 gnat 15.1.0
riscv64 gnat 15.2.0
sparc gnat 12.2.0
sparc gnat 12.3.0
sparc gnat 12.4.0
sparc gnat 12.5.0
sparc gnat 13.1.0
sparc gnat 13.2.0
sparc gnat 13.3.0
sparc gnat 13.4.0
sparc gnat 14.1.0
sparc gnat 14.2.0
sparc gnat 14.3.0
sparc gnat 15.1.0
sparc gnat 15.2.0
sparc leon gnat 13.1.0
sparc leon gnat 13.2.0
sparc leon gnat 13.3.0
sparc leon gnat 13.4.0
sparc leon gnat 14.1.0
sparc leon gnat 14.2.0
sparc leon gnat 14.3.0
sparc64 gnat 12.2.0
sparc64 gnat 12.3.0
sparc64 gnat 12.4.0
sparc64 gnat 12.5.0
sparc64 gnat 13.1.0
sparc64 gnat 13.2.0
sparc64 gnat 13.3.0
sparc64 gnat 13.4.0
sparc64 gnat 14.1.0
sparc64 gnat 14.2.0
sparc64 gnat 14.3.0
sparc64 gnat 15.1.0
sparc64 gnat 15.2.0
x86-64 gnat (trunk)
x86-64 gnat 10.2
x86-64 gnat 10.4
x86-64 gnat 10.4 (assertions)
x86-64 gnat 10.5
x86-64 gnat 10.5 (assertions)
x86-64 gnat 11.1
x86-64 gnat 11.1 (assertions)
x86-64 gnat 11.2
x86-64 gnat 11.2 (assertions)
x86-64 gnat 11.3
x86-64 gnat 11.3 (assertions)
x86-64 gnat 11.4
x86-64 gnat 11.4 (assertions)
x86-64 gnat 12.1
x86-64 gnat 12.1 (assertions)
x86-64 gnat 12.2
x86-64 gnat 12.2 (assertions)
x86-64 gnat 12.3
x86-64 gnat 12.3 (assertions)
x86-64 gnat 12.4
x86-64 gnat 12.4 (assertions)
x86-64 gnat 12.5
x86-64 gnat 12.5 (assertions)
x86-64 gnat 13.1
x86-64 gnat 13.1 (assertions)
x86-64 gnat 13.2
x86-64 gnat 13.2 (assertions)
x86-64 gnat 13.3
x86-64 gnat 13.3 (assertions)
x86-64 gnat 13.4
x86-64 gnat 13.4 (assertions)
x86-64 gnat 14.1
x86-64 gnat 14.1 (assertions)
x86-64 gnat 14.2
x86-64 gnat 14.2 (assertions)
x86-64 gnat 14.3
x86-64 gnat 14.3 (assertions)
x86-64 gnat 15.1
x86-64 gnat 15.1 (assertions)
x86-64 gnat 15.2
x86-64 gnat 15.2 (assertions)
x86-64 gnat 8.2
x86-64 gnat 9.5
Options
Source code
with Ada.Text_IO; use Ada.Text_IO; with Ada.Integer_Text_IO; use Ada.Integer_Text_IO; with Ada.Containers.Vectors; with Ada.Containers; use Ada.Containers; procedure Example is package Stack_Vector is new Ada.Containers.Vectors (Index_Type => Positive, Element_Type => Character); use Stack_Vector; subtype Stack_Index is Positive range 1 .. 9; type Stacks is array (Stack_Index) of aliased Vector; All_Stacks : Stacks; F : File_Type; Initial_state : Boolean := False; function Read_Initial_State return Boolean is Omit : Character; Value : Character; begin if Initial_state then return False; end if; for I in Stack_Index loop Get (F, Omit); Get (F, Value); -- Checks for end of init condition if not (Value in 'A' .. 'Z' | ' ') then Skip_Line (F); Initial_state := True; return False; end if; Get (F, Omit); if I < Stacks'Last then Get (F, Omit); end if; if Value /= ' ' then Prepend (All_Stacks(I), Value); end if; end loop; return True; end Read_Initial_State; type Command is record Num : Positive; Source : Stack_Index; Dest : Stack_Index; end record; procedure Read_Command (C : out Command) is Omit_Word4 : String(1..5); Omit_Word2 : String(1..2); Omit_Space : Character; Num, Source, Dest : Positive; begin Get (F, Omit_Word4); Get (F, Num); Get (F, Omit_Space); Get (F, Omit_Word4); Get (F, Source); Get (F, Omit_Space); Get (F, Omit_Word2); Get (F, Dest); C := (Num => Num, Source => Source, Dest => Dest); end Read_Command; procedure Execute_Command (C : Command; Is_9001 : Boolean := False) is Stash : aliased Vector; Effective_Stack : access Vector; begin if Is_9001 then Effective_Stack := Stash'Access; else Effective_Stack := All_Stacks (C.Dest)'Access; end if; for I in 1 .. C.Num loop Append (Effective_Stack.all, Last_Element (All_Stacks (C.Source))); Delete_Last (All_Stacks (C.Source)); end loop; if Is_9001 then for I in 1 .. Length (Stash) loop Append ( All_Stacks (C.Dest), Last_Element (Stash)); Delete_Last (Stash); end loop; end if; end Execute_Command; procedure Print_Top_Stack is S : String(1..9); begin for I in Stack_Index loop S (I) := Last_Element (All_Stacks (I)); end loop; Put_Line (S); end Print_Top_Stack; C : Command; procedure Reset is begin Initial_state := False; for V of All_Stacks loop Clear (V); end loop; end Reset; procedure Do_Part (Is_Part1 : Boolean) is begin Open (F, In_File, "input"); while (not Ada.Text_IO.End_Of_File (F)) and then Read_Initial_State loop null; end loop; -- empty line Skip_Line (F); while (not Ada.Text_IO.End_Of_File (F)) loop Read_Command (C); Execute_Command (C, not Is_Part1); end loop; Close (F); Print_Top_Stack; end Do_Part; begin Do_Part (False); Reset; Do_Part (True); end Example;
ada source #2
Output
Compile to binary object
Link to binary
Execute the code
Intel asm syntax
Demangle identifiers
Verbose demangling
Filters
Unused labels
Library functions
Directives
Comments
Horizontal whitespace
Debug intrinsics
Compiler
S390X GNAT 11.2.0
S390X GNAT 12.1.0
S390X GNAT 12.2.0
S390X GNAT 12.3.0
S390X GNAT 12.4.0
S390X GNAT 12.5.0
S390X GNAT 13.1.0
S390X GNAT 13.2.0
S390X GNAT 13.3.0
S390X GNAT 13.4.0
S390X GNAT 14.1.0
S390X GNAT 14.2.0
S390X GNAT 14.3.0
S390X GNAT 15.1.0
S390X GNAT 15.2.0
arm gnat 10.3.0-2 (Alire)
arm gnat 11.2.0-3 (Alire)
arm gnat 13.1.0
arm gnat 13.2.0
arm gnat 13.3.0
arm gnat 13.4.0
arm gnat 14.1.0
arm gnat 14.2.0
arm gnat 14.3.0
arm gnat 15.1.0
arm gnat 15.2.0
arm64 gnat 12.1.0
arm64 gnat 12.2.0
arm64 gnat 12.3.0
arm64 gnat 12.4.0
arm64 gnat 12.5.0
arm64 gnat 13.1.0
arm64 gnat 13.2.0
arm64 gnat 13.3.0
arm64 gnat 13.4.0
arm64 gnat 14.1.0
arm64 gnat 14.2.0
arm64 gnat 14.3.0
arm64 gnat 15.1.0
arm64 gnat 15.2.0
hppa gnat 14.2.0
hppa gnat 14.3.0
hppa gnat 15.1.0
hppa gnat 15.2.0
loongarch64 gnat 14.1.0
loongarch64 gnat 14.2.0
loongarch64 gnat 14.3.0
loongarch64 gnat 15.1.0
loongarch64 gnat 15.2.0
mips gnat 11.2.0
mips gnat 12.1.0
mips gnat 12.2.0
mips gnat 12.3.0
mips gnat 12.4.0
mips gnat 12.5.0
mips gnat 13.1.0
mips gnat 13.2.0
mips gnat 13.3.0
mips gnat 13.4.0
mips gnat 14.1.0
mips gnat 14.2.0
mips gnat 14.3.0
mips gnat 15.1.0
mips gnat 15.2.0
mips64 gnat 11.2.0
mips64 gnat 12.1.0
mips64 gnat 12.2.0
mips64 gnat 12.3.0
mips64 gnat 12.4.0
mips64 gnat 12.5.0
mips64 gnat 13.1.0
mips64 gnat 13.2.0
mips64 gnat 13.3.0
mips64 gnat 13.4.0
mips64 gnat 14.1.0
mips64 gnat 14.2.0
mips64 gnat 14.3.0
mips64 gnat 15.1.0
mips64 gnat 15.2.0
powerpc gnat 11.2.0
powerpc gnat 12.1.0
powerpc gnat 12.2.0
powerpc gnat 12.3.0
powerpc gnat 12.4.0
powerpc gnat 12.5.0
powerpc gnat 13.1.0
powerpc gnat 13.2.0
powerpc gnat 13.3.0
powerpc gnat 13.4.0
powerpc gnat 14.1.0
powerpc gnat 14.2.0
powerpc gnat 14.3.0
powerpc gnat 15.1.0
powerpc gnat 15.2.0
powerpc64 gnat 11.2.0
powerpc64 gnat 12.1.0
powerpc64 gnat 12.2.0
powerpc64 gnat 12.3.0
powerpc64 gnat 12.4.0
powerpc64 gnat 12.5.0
powerpc64 gnat 13.1.0
powerpc64 gnat 13.2.0
powerpc64 gnat 13.3.0
powerpc64 gnat 13.4.0
powerpc64 gnat 14.1.0
powerpc64 gnat 14.2.0
powerpc64 gnat 14.3.0
powerpc64 gnat 15.1.0
powerpc64 gnat 15.2.0
powerpc64 gnat trunk
powerpc64le gnat 11.2.0
powerpc64le gnat 12.1.0
powerpc64le gnat 12.2.0
powerpc64le gnat 12.3.0
powerpc64le gnat 12.4.0
powerpc64le gnat 12.5.0
powerpc64le gnat 13.1.0
powerpc64le gnat 13.2.0
powerpc64le gnat 13.3.0
powerpc64le gnat 13.4.0
powerpc64le gnat 14.1.0
powerpc64le gnat 14.2.0
powerpc64le gnat 14.3.0
powerpc64le gnat 15.1.0
powerpc64le gnat 15.2.0
powerpc64le gnat trunk
riscv64 gnat 10.3.0-2 (Alire)
riscv64 gnat 11.2.0-3 (Alire)
riscv64 gnat 12.3.0
riscv64 gnat 12.4.0
riscv64 gnat 12.5.0
riscv64 gnat 13.1.0
riscv64 gnat 13.2.0
riscv64 gnat 13.3.0
riscv64 gnat 13.4.0
riscv64 gnat 14.1.0
riscv64 gnat 14.2.0
riscv64 gnat 14.3.0
riscv64 gnat 15.1.0
riscv64 gnat 15.2.0
sparc gnat 12.2.0
sparc gnat 12.3.0
sparc gnat 12.4.0
sparc gnat 12.5.0
sparc gnat 13.1.0
sparc gnat 13.2.0
sparc gnat 13.3.0
sparc gnat 13.4.0
sparc gnat 14.1.0
sparc gnat 14.2.0
sparc gnat 14.3.0
sparc gnat 15.1.0
sparc gnat 15.2.0
sparc leon gnat 13.1.0
sparc leon gnat 13.2.0
sparc leon gnat 13.3.0
sparc leon gnat 13.4.0
sparc leon gnat 14.1.0
sparc leon gnat 14.2.0
sparc leon gnat 14.3.0
sparc64 gnat 12.2.0
sparc64 gnat 12.3.0
sparc64 gnat 12.4.0
sparc64 gnat 12.5.0
sparc64 gnat 13.1.0
sparc64 gnat 13.2.0
sparc64 gnat 13.3.0
sparc64 gnat 13.4.0
sparc64 gnat 14.1.0
sparc64 gnat 14.2.0
sparc64 gnat 14.3.0
sparc64 gnat 15.1.0
sparc64 gnat 15.2.0
x86-64 gnat (trunk)
x86-64 gnat 10.2
x86-64 gnat 10.4
x86-64 gnat 10.4 (assertions)
x86-64 gnat 10.5
x86-64 gnat 10.5 (assertions)
x86-64 gnat 11.1
x86-64 gnat 11.1 (assertions)
x86-64 gnat 11.2
x86-64 gnat 11.2 (assertions)
x86-64 gnat 11.3
x86-64 gnat 11.3 (assertions)
x86-64 gnat 11.4
x86-64 gnat 11.4 (assertions)
x86-64 gnat 12.1
x86-64 gnat 12.1 (assertions)
x86-64 gnat 12.2
x86-64 gnat 12.2 (assertions)
x86-64 gnat 12.3
x86-64 gnat 12.3 (assertions)
x86-64 gnat 12.4
x86-64 gnat 12.4 (assertions)
x86-64 gnat 12.5
x86-64 gnat 12.5 (assertions)
x86-64 gnat 13.1
x86-64 gnat 13.1 (assertions)
x86-64 gnat 13.2
x86-64 gnat 13.2 (assertions)
x86-64 gnat 13.3
x86-64 gnat 13.3 (assertions)
x86-64 gnat 13.4
x86-64 gnat 13.4 (assertions)
x86-64 gnat 14.1
x86-64 gnat 14.1 (assertions)
x86-64 gnat 14.2
x86-64 gnat 14.2 (assertions)
x86-64 gnat 14.3
x86-64 gnat 14.3 (assertions)
x86-64 gnat 15.1
x86-64 gnat 15.1 (assertions)
x86-64 gnat 15.2
x86-64 gnat 15.2 (assertions)
x86-64 gnat 8.2
x86-64 gnat 9.5
Options
Source code
[D] [N] [F] [H] [F] [L] [J] [H] [R] [H] [F] [V] [G] [H] [Z] [Q] [Z] [W] [L] [J] [B] [S] [W] [H] [B] [H] [D] [C] [M] [P] [R] [S] [G] [J] [J] [W] [Z] [V] [W] [B] [V] [F] [G] [T] [T] [T] [P] [Q] [V] [C] [H] [P] [Q] [Z] [D] [W] 1 2 3 4 5 6 7 8 9 move 1 from 3 to 9 move 2 from 2 to 1 move 3 from 5 to 4 move 1 from 1 to 8 move 1 from 3 to 9 move 1 from 5 to 7 move 1 from 5 to 3 move 4 from 4 to 2 move 2 from 3 to 4 move 1 from 3 to 2 move 6 from 1 to 5 move 1 from 4 to 3 move 1 from 3 to 9 move 4 from 2 to 4 move 4 from 8 to 7 move 3 from 2 to 6 move 1 from 2 to 7 move 5 from 5 to 6 move 1 from 5 to 8 move 5 from 8 to 7 move 7 from 4 to 6 move 15 from 6 to 4 move 1 from 8 to 7 move 1 from 1 to 5 move 1 from 2 to 4 move 2 from 4 to 8 move 1 from 5 to 2 move 5 from 6 to 4 move 2 from 2 to 1 move 1 from 9 to 4 move 1 from 6 to 9 move 3 from 9 to 3 move 3 from 4 to 3 move 1 from 6 to 1 move 5 from 3 to 4 move 2 from 8 to 5 move 1 from 3 to 6 move 1 from 6 to 2 move 1 from 2 to 8 move 6 from 4 to 2 move 1 from 2 to 7 move 1 from 5 to 3 move 4 from 9 to 3 move 1 from 9 to 1 move 3 from 1 to 6 move 1 from 9 to 7 move 14 from 7 to 6 move 1 from 8 to 3 move 4 from 2 to 6 move 3 from 3 to 8 move 9 from 4 to 9 move 1 from 1 to 5 move 2 from 5 to 8 move 3 from 8 to 2 move 4 from 2 to 6 move 1 from 3 to 9 move 10 from 6 to 1 move 5 from 9 to 8 move 1 from 9 to 3 move 6 from 1 to 8 move 3 from 7 to 4 move 2 from 4 to 5 move 2 from 9 to 8 move 15 from 8 to 3 move 3 from 7 to 9 move 8 from 4 to 3 move 2 from 5 to 9 move 6 from 6 to 5 move 6 from 5 to 8 move 1 from 7 to 8 move 6 from 9 to 2 move 5 from 2 to 4 move 6 from 3 to 5 move 5 from 5 to 8 move 1 from 5 to 7 move 1 from 9 to 7 move 2 from 6 to 4 move 12 from 8 to 2 move 7 from 2 to 4 move 3 from 7 to 5 move 3 from 5 to 7 move 3 from 7 to 9 move 2 from 9 to 7 move 1 from 9 to 3 move 2 from 7 to 4 move 3 from 1 to 9 move 4 from 6 to 5 move 6 from 2 to 8 move 14 from 4 to 9 move 7 from 9 to 6 move 9 from 9 to 2 move 1 from 5 to 8 move 5 from 6 to 3 move 3 from 1 to 9 move 3 from 8 to 9 move 1 from 8 to 3 move 5 from 2 to 5 move 1 from 4 to 9 move 2 from 6 to 1 move 2 from 3 to 6 move 3 from 8 to 3 move 2 from 6 to 3 move 1 from 4 to 9 move 4 from 3 to 6 move 7 from 6 to 9 move 10 from 9 to 2 move 10 from 3 to 2 move 7 from 2 to 8 move 2 from 1 to 7 move 13 from 3 to 7 move 7 from 5 to 1 move 1 from 9 to 6 move 4 from 8 to 4 move 2 from 3 to 2 move 4 from 4 to 6 move 1 from 3 to 4 move 5 from 6 to 5 move 3 from 5 to 7 move 12 from 2 to 5 move 7 from 5 to 6 move 2 from 8 to 3 move 7 from 6 to 2 move 3 from 9 to 6 move 1 from 6 to 7 move 1 from 4 to 9 move 2 from 7 to 6 move 13 from 7 to 4 move 3 from 7 to 5 move 1 from 9 to 6 move 12 from 4 to 3 move 1 from 8 to 1 move 2 from 6 to 4 move 1 from 7 to 9 move 2 from 9 to 8 move 12 from 3 to 5 move 1 from 8 to 2 move 15 from 5 to 6 move 2 from 4 to 6 move 1 from 9 to 6 move 5 from 5 to 4 move 4 from 4 to 2 move 2 from 1 to 5 move 4 from 1 to 5 move 1 from 8 to 6 move 7 from 5 to 2 move 22 from 2 to 3 move 9 from 6 to 3 move 1 from 1 to 8 move 1 from 8 to 7 move 23 from 3 to 6 move 2 from 2 to 4 move 1 from 7 to 8 move 1 from 8 to 2 move 19 from 6 to 9 move 2 from 2 to 4 move 4 from 4 to 6 move 13 from 6 to 8 move 12 from 9 to 1 move 2 from 5 to 9 move 2 from 4 to 8 move 1 from 2 to 7 move 1 from 7 to 1 move 4 from 6 to 2 move 10 from 1 to 9 move 1 from 6 to 7 move 11 from 8 to 2 move 6 from 3 to 6 move 1 from 7 to 2 move 1 from 1 to 8 move 2 from 6 to 7 move 7 from 6 to 3 move 9 from 3 to 1 move 7 from 9 to 6 move 1 from 8 to 7 move 4 from 2 to 6 move 1 from 8 to 3 move 6 from 6 to 5 move 9 from 9 to 3 move 5 from 6 to 1 move 1 from 7 to 8 move 2 from 8 to 4 move 1 from 4 to 2 move 1 from 4 to 5 move 2 from 5 to 6 move 1 from 6 to 9 move 9 from 1 to 4 move 4 from 4 to 6 move 2 from 4 to 7 move 7 from 2 to 8 move 5 from 6 to 7 move 6 from 3 to 8 move 8 from 1 to 9 move 3 from 5 to 2 move 2 from 3 to 9 move 3 from 9 to 4 move 7 from 2 to 3 move 1 from 7 to 2 move 10 from 3 to 2 move 6 from 9 to 4 move 1 from 3 to 1 move 1 from 1 to 8 move 4 from 8 to 5 move 10 from 8 to 4 move 2 from 8 to 9 move 7 from 4 to 9 move 6 from 2 to 6 move 3 from 6 to 5 move 4 from 4 to 9 move 8 from 7 to 5 move 1 from 9 to 2 move 7 from 2 to 1 move 4 from 9 to 8 move 2 from 6 to 3 move 2 from 3 to 2 move 13 from 5 to 7 move 5 from 4 to 9 move 5 from 1 to 7 move 3 from 5 to 8 move 17 from 7 to 2 move 15 from 2 to 6 move 15 from 9 to 5 move 1 from 9 to 5 move 4 from 8 to 6 move 1 from 4 to 6 move 5 from 4 to 7 move 5 from 2 to 7 move 18 from 6 to 2 move 2 from 7 to 6 move 10 from 2 to 8 move 2 from 2 to 3 move 11 from 8 to 7 move 7 from 7 to 5 move 9 from 7 to 5 move 3 from 7 to 5 move 2 from 1 to 7 move 4 from 2 to 1 move 30 from 5 to 1 move 1 from 3 to 1 move 35 from 1 to 9 move 2 from 2 to 5 move 2 from 8 to 3 move 20 from 9 to 2 move 3 from 7 to 9 move 1 from 3 to 6 move 5 from 5 to 3 move 18 from 2 to 5 move 4 from 5 to 8 move 7 from 9 to 7 move 1 from 6 to 2 move 3 from 8 to 5 move 6 from 3 to 5 move 3 from 7 to 4 move 2 from 2 to 3 move 1 from 4 to 5 move 2 from 4 to 5 move 4 from 7 to 2 move 26 from 5 to 6 move 2 from 2 to 7 move 1 from 2 to 9 move 1 from 7 to 8 move 1 from 5 to 3 move 2 from 8 to 3 move 11 from 9 to 3 move 6 from 3 to 4 move 27 from 6 to 4 move 33 from 4 to 3 move 4 from 6 to 8 move 1 from 2 to 8 move 1 from 7 to 3 move 4 from 8 to 9 move 1 from 8 to 6 move 34 from 3 to 8 move 1 from 8 to 5 move 1 from 2 to 9 move 8 from 3 to 9 move 3 from 5 to 4 move 1 from 6 to 5 move 27 from 8 to 9 move 1 from 3 to 4 move 1 from 5 to 7 move 3 from 8 to 1 move 11 from 9 to 1 move 1 from 7 to 5 move 11 from 9 to 3 move 1 from 5 to 1 move 1 from 8 to 7 move 2 from 9 to 2 move 1 from 2 to 1 move 1 from 2 to 7 move 2 from 8 to 2 move 6 from 3 to 8 move 1 from 4 to 2 move 7 from 1 to 2 move 1 from 7 to 1 move 19 from 9 to 1 move 3 from 2 to 9 move 10 from 1 to 4 move 2 from 9 to 1 move 1 from 7 to 9 move 7 from 1 to 6 move 10 from 4 to 3 move 14 from 1 to 7 move 2 from 9 to 1 move 3 from 4 to 6 move 9 from 7 to 6 move 1 from 3 to 5 move 4 from 8 to 5 move 10 from 6 to 8 move 3 from 5 to 6 move 10 from 3 to 4 move 4 from 3 to 7 move 1 from 5 to 9 move 2 from 7 to 9 move 1 from 1 to 9 move 6 from 2 to 4 move 1 from 5 to 3 move 11 from 4 to 9 move 3 from 4 to 9 move 1 from 2 to 7 move 2 from 3 to 5 move 1 from 3 to 2 move 7 from 7 to 2 move 2 from 5 to 8 move 8 from 2 to 1 move 2 from 6 to 8 move 9 from 6 to 8 move 3 from 8 to 2 move 3 from 2 to 6 move 9 from 9 to 5 move 3 from 5 to 8 move 5 from 9 to 4 move 3 from 6 to 4 move 1 from 6 to 3 move 3 from 1 to 6 move 3 from 6 to 9 move 17 from 8 to 5 move 12 from 5 to 4 move 21 from 4 to 3 move 1 from 4 to 9 move 7 from 5 to 4 move 22 from 3 to 7 move 3 from 1 to 8 move 3 from 9 to 1 move 4 from 4 to 6 move 1 from 6 to 2 move 3 from 4 to 1 move 1 from 6 to 7 move 4 from 9 to 3 move 2 from 5 to 7 move 1 from 9 to 6 move 2 from 6 to 9 move 8 from 7 to 9 move 1 from 6 to 2 move 1 from 9 to 3 move 4 from 3 to 4 move 14 from 7 to 4 move 1 from 3 to 2 move 3 from 7 to 8 move 12 from 8 to 9 move 8 from 4 to 1 move 1 from 7 to 4 move 2 from 5 to 1 move 3 from 2 to 9 move 17 from 9 to 3 move 6 from 9 to 1 move 1 from 9 to 2 move 13 from 3 to 9 move 4 from 3 to 1 move 3 from 9 to 1 move 22 from 1 to 9 move 1 from 8 to 1 move 6 from 9 to 5 move 4 from 1 to 9 move 3 from 1 to 9 move 4 from 4 to 8 move 4 from 4 to 2 move 1 from 4 to 3 move 3 from 8 to 9 move 1 from 3 to 4 move 1 from 1 to 3 move 1 from 8 to 2 move 1 from 5 to 8 move 4 from 2 to 1 move 1 from 8 to 7 move 10 from 9 to 6 move 1 from 7 to 9 move 1 from 2 to 3 move 1 from 6 to 1 move 3 from 5 to 7 move 1 from 8 to 7 move 1 from 6 to 1 move 1 from 2 to 4 move 1 from 5 to 2 move 19 from 9 to 2 move 1 from 4 to 7 move 1 from 3 to 7 move 3 from 7 to 9 move 4 from 1 to 2 move 10 from 9 to 4 move 1 from 5 to 8 move 3 from 6 to 4 move 1 from 3 to 4 move 10 from 2 to 8 move 12 from 2 to 5 move 3 from 5 to 9 move 5 from 6 to 5 move 5 from 1 to 4 move 22 from 4 to 3 move 3 from 8 to 7 move 1 from 7 to 2 move 3 from 2 to 9 move 19 from 3 to 5 move 2 from 7 to 8 move 7 from 5 to 6 move 5 from 9 to 6 move 1 from 9 to 3 move 16 from 5 to 1 move 2 from 3 to 1 move 3 from 7 to 3 move 7 from 8 to 4 move 2 from 8 to 1 move 5 from 5 to 9 move 1 from 5 to 2 move 1 from 2 to 3 move 1 from 8 to 5 move 4 from 5 to 7 move 2 from 3 to 8 move 2 from 1 to 5 move 4 from 7 to 6 move 6 from 4 to 7 move 4 from 9 to 8 move 14 from 6 to 7 move 8 from 1 to 7 move 7 from 1 to 3 move 3 from 5 to 9 move 28 from 7 to 5 move 1 from 1 to 8 move 4 from 8 to 3 move 9 from 3 to 1 move 1 from 9 to 5 move 6 from 3 to 2 move 10 from 1 to 6 move 1 from 1 to 9 move 5 from 9 to 7 move 14 from 5 to 3 move 1 from 4 to 1 move 1 from 7 to 2 move 1 from 7 to 1 move 1 from 1 to 7 move 3 from 8 to 5 move 4 from 6 to 3 move 3 from 7 to 2 move 15 from 3 to 6 move 16 from 5 to 7 move 4 from 2 to 8 move 1 from 3 to 1 move 5 from 7 to 3 move 12 from 6 to 4 move 4 from 8 to 5 move 1 from 4 to 2 move 2 from 5 to 3 move 8 from 6 to 3 move 7 from 4 to 5 move 9 from 7 to 6 move 1 from 7 to 9 move 1 from 1 to 9 move 1 from 1 to 9 move 5 from 2 to 8 move 5 from 8 to 2 move 11 from 5 to 9 move 1 from 4 to 2 move 4 from 9 to 6 move 12 from 3 to 7 move 3 from 4 to 9 move 14 from 6 to 2 move 2 from 2 to 4 move 2 from 3 to 5 move 10 from 7 to 2 move 1 from 4 to 8 move 1 from 2 to 7 move 28 from 2 to 9 move 4 from 7 to 5 move 1 from 2 to 4 move 6 from 5 to 1 move 2 from 4 to 3 move 1 from 8 to 1 move 40 from 9 to 1 move 10 from 1 to 6 move 5 from 3 to 5 move 1 from 9 to 8 move 3 from 6 to 7 move 11 from 1 to 2 move 9 from 2 to 3 move 3 from 5 to 1 move 4 from 7 to 1 move 2 from 2 to 4 move 2 from 5 to 8 move 19 from 1 to 7 move 8 from 3 to 2 move 14 from 1 to 8 move 14 from 7 to 1 move 4 from 6 to 5 move 1 from 1 to 9
Become a Patron
Sponsor on GitHub
Donate via PayPal
Compiler Explorer Shop
Source on GitHub
Mailing list
Installed libraries
Wiki
Report an issue
How it works
Contact the author
CE on Mastodon
CE on Bluesky
Statistics
Changelog
Version tree