#include #include #include using namespace std; #define NMAX 50 typedef struct s{ int to,c; } Sed; int main(){ int N; int S[NMAX]; int M; vector ed[NMAX]; queue nq; cin>>N; for(int i=0;i>S[i]; cin>>M; for(int i=0;i>A>>B>>C; Sed tmpS; tmpS.c=C; tmpS.to=B; ed[A].push_back(tmpS); tmpS.to=A; ed[B].push_back(tmpS); } int ans=-1; for(int i=1;i<=N-2;i++){ for(int j=i+1;j<=N-2;j++){ int cost[4][NMAX]; for(int k=0;k<4;k++){ for(int l=0;lcost[l][ni]+ed[ni][k].c){ f=true; cost[l][ed[ni][k].to]=cost[l][ni]+ed[ni][k].c; } } } if(f) nq.push(ed[ni][k].to); } } if(cost[3][N-1]!=-1){ if(ans==-1||ans>cost[3][N-1]) ans=cost[3][N-1]; } /*cout<