import ads;
import trees;

/* PrvnĂ­ strom */

pair u[];
real s = 1;
u[0] = (0, 0);
u[1] = u[0] + (-1.2, -s);
u[2] = u[0] + (0, -s);
u[3] = u[0] + (1.2, -s);
u[4] = u[1] + (-0.4, -s);
u[5] = u[1] + (0, -s);
u[6] = u[1] + (0.4, -s);
u[7] = u[2] + (-0.3, -s);
u[8] = u[2] + (0.3, -s);
u[9] = u[3] + (-0.3, -s);
u[10] = u[3] + (0.3, -s);

tree_init(u);

real d = 0.1;
real dd = 0.18;
ab_edge(0, 1, -dd);
ab_edge(0, 2);
ab_edge(0, 3, dd);
ab_edge(1, 4, -dd);
ab_edge(1, 5);
ab_edge(1, 6, dd);
ab_edge(2, 7, -d);
ab_edge(2, 8, d);
ab_edge(3, 9, -d);
ab_edge(3, 10, d);

tree_elliptic_node(0, "4\;7");
tree_elliptic_node(1, "1\;3");
tree_elliptic_node(2, "6");
tree_elliptic_node(3, "9");
for (int i=4; i<=10; ++i)
	tree_ext(i);

/* DruhĂ˝ strom */

pair v[];
real s = 1;
v[0] = (4.5, 0);
v[1] = v[0] + (-1.2, -s);
v[2] = v[0] + (0, -s);
v[3] = v[0] + (1.2, -s);
v[4] = v[1] + (-0.3, -s);
v[5] = v[1] + (0.3, -s);
v[6] = v[2] + (-0.3, -s);
v[7] = v[2] + (0.3, -s);
v[8] = v[3] + (-0.4, -s);
v[9] = v[3] + (0, -s);
v[10] = v[3] + (0.4, -s);

tree_init(v);

real d = 0.1;
real dd = 0.18;
ab_edge(0, 1, -dd);
ab_edge(0, 2);
ab_edge(0, 3, dd);
ab_edge(1, 4, -d);
ab_edge(1, 5, d);
ab_edge(2, 6, -d);
ab_edge(2, 7, d);
ab_edge(3, 8, -dd);
ab_edge(3, 9 );
ab_edge(3, 10, dd);

tree_elliptic_node(0, "3\;6");
tree_elliptic_node(1, "1");
tree_elliptic_node(2, "4");
tree_elliptic_node(3, "7\;9");
for (int i=4; i<=10; ++i)
	tree_ext(i);