#include <iostream>
#include <vector>
using namespace std;
struct node
{
vector <int> edge;
vector <int> price;
bool visited, end_of_graph;
int parent;
node()
{
visited=false;
end_of_graph=false;
parent=-1;
}
void add(int n)
{
edge.push_back(n);
}
void cost(int n)
{
price.push_back(n);
}
void set_as_end()
{
end_of_graph==true;
}
};
int main()
{
vector <node> graph;
for(int x=0; x<5; x++)
graph.push_back(node());
//adding edges
graph[0].add(1); graph[0].cost(4);
graph[0].add(2); graph[0].cost(1);
graph[0].add(3); graph[0].cost(4);
graph[1].add(3); graph[1].cost(1);
graph[2].add(1); graph[2].cost(1);
graph[2].add(3); graph[2].cost(5);
graph[3].set_as_end();
vector <int> lista;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBub2RlCnsKICAgIHZlY3RvciA8aW50PiBlZGdlOwogICAgdmVjdG9yIDxpbnQ+IHByaWNlOwoKICAgIGJvb2wgdmlzaXRlZCwgZW5kX29mX2dyYXBoOwogICAgaW50IHBhcmVudDsKCiAgICBub2RlKCkKICAgIHsKICAgICAgICB2aXNpdGVkPWZhbHNlOwogICAgICAgIGVuZF9vZl9ncmFwaD1mYWxzZTsKICAgICAgICBwYXJlbnQ9LTE7CiAgICB9CgogICAgdm9pZCBhZGQoaW50IG4pCiAgICB7CiAgICAgICAgZWRnZS5wdXNoX2JhY2sobik7CiAgICB9CiAgICB2b2lkIGNvc3QoaW50IG4pCiAgICB7CiAgICAgICAgcHJpY2UucHVzaF9iYWNrKG4pOwogICAgfQogICAgdm9pZCBzZXRfYXNfZW5kKCkKICAgIHsKICAgICAgICBlbmRfb2ZfZ3JhcGg9PXRydWU7CiAgICB9Cgp9OwppbnQgbWFpbigpCnsKICAgIHZlY3RvciA8bm9kZT4gZ3JhcGg7CgogICAgZm9yKGludCB4PTA7IHg8NTsgeCsrKQogICAgICAgIGdyYXBoLnB1c2hfYmFjayhub2RlKCkpOwoKICAgIC8vYWRkaW5nIGVkZ2VzCgogICAgZ3JhcGhbMF0uYWRkKDEpOyBncmFwaFswXS5jb3N0KDQpOwogICAgZ3JhcGhbMF0uYWRkKDIpOyBncmFwaFswXS5jb3N0KDEpOwogICAgZ3JhcGhbMF0uYWRkKDMpOyBncmFwaFswXS5jb3N0KDQpOwoKICAgIGdyYXBoWzFdLmFkZCgzKTsgZ3JhcGhbMV0uY29zdCgxKTsKCiAgICBncmFwaFsyXS5hZGQoMSk7IGdyYXBoWzJdLmNvc3QoMSk7CiAgICBncmFwaFsyXS5hZGQoMyk7IGdyYXBoWzJdLmNvc3QoNSk7CgogICAgZ3JhcGhbM10uc2V0X2FzX2VuZCgpOwoKICAgIHZlY3RvciA8aW50PiBsaXN0YTsKCiAgICByZXR1cm4gMDsKfQo=