# Description of the Input and Output formats for graphs and Steiner Trees
The input and output formats used in our program are the same used by the
PACE Challenge 2018 (Track 3, Heuristic). The description below was extracted
from the link [https://pacechallenge.org/2018/steiner-tree/](https://pacechallenge.org/2018/steiner-tree/)
## Graph format (.gr)
We use the format ".gr" to specify graphs.
The file starts with a line ‘SECTION Graph’. The next two lines are of the
form ‘Nodes #nodes’ and ‘Edges #edges’, always in that order, where #nodes
is the number of vertices and #edges is the number of edges of the graph. The #edges
next lines are of the form ‘E u v w’ where u and v are integers between 1 and #nodes
representing an edge between u and v of weight the positive integer w.
The following line reads ‘END’ and finishes the list of edges.
There is then a section Terminals announced by two lines ‘SECTION Terminals’ and ‘Terminals #terminals’
where #terminals is the number of terminals. The next #terminals lines are of the form ‘T u’ where u is an
integer from 1 to #nodes, which means that u is a terminal. Again, the section ends with the line ‘END’.
The file ends with a subsequent line ‘EOF’. Here is an example of a small graph.
```
SECTION Graph
Nodes 5
Edges 6
E 1 2 1
E 1 4 3
E 3 2 3
E 2 4 4
E 3 5 10
E 4 5 1
END
SECTION Terminals
Terminals 2
T 2
T 4
END
EOF
```
# Steiner Trees (.ost)
We use the format ".ost" to specify Steiner trees. The file starts with the line ‘VALUE x’
where x is the weight of the found Steiner tree. The next lines are of the form ‘u v’ where
u and v are two vertices of the graph linked by an edge and lists all the edges of the
found Steiner tree. Here is a small example.
```
VALUE 20
1 3
3 5
7 3
10 7
7 22
```