#include #include #include #define MAX (long long int)1e16 int a; std::vector< std::pair > V[110]; long long int dist[110][110]; std::priority_queue< std::pair > Q; void init(int target) { for(int i=1;i<=a;i++) dist[target][i] = MAX; Q.push(std::make_pair(0,target)); while(!Q.empty()) { std::pair A = Q.top(); Q.pop(); A.first *= (-1); if(dist[target][A.second]!=MAX) continue; dist[target][A.second] = A.first; for(int i=0;i>(i-1))&1)==0) { long long int t = func(k-1,bit+(1<<(i-1))) + dist2[i][bit] + x[i]; ans = ans