#include<bits/stdc++.h> using namespace std; bool pp=false; int n,m,wn; int a[105][2],w[1005][1005]; bool d[20]; int b[105][105]; vector<int> g[15]; int k[10005],x=0; void dfs(int i,int wn){ d[i]=true; cout<<i<<" "; if(i==n){ pp=true; cout<<wn<<endl; } for(int j=1; j<=n; j++){ if(a[i][j]!=0 && d[j]==false){ d[j]=true; wn+=w[i][j]; dfs(j); d[j]=false; } } } int main(){ cin>>n>>m; for(int i=1; i<=m; i++){ cin>>a[i][1]>>a[i][2]; cin>>w[a[i][1]][a[i][2]]; b[a[i][1]][a[i][2]]=1; } dfs(1); if(pp==false){ cout<<"-1"<<endl; } return 0; }
#include<bits/stdc++.h> using namespace std; int c,p; int a[1005][1005]; int d[1005]; int minn=INT_MAX; bool b[1005]; vector<int> g[1005]; int y; int k; void bfs(){ memset(d,0,sizeof(d)); queue<int> q; q.push(1); b[1]=true; while(!q.empty()){ y=q.front(); q.pop(); for(int i=0; i<g[y].size(); i++){ if(b[g[y][i]]==false){ k=g[y][i]; b[k]=true; q.push(k); d[k]=d[y]+1; } } } cout<<d[k]<<endl; } int main(){ cin>>c>>p; int qw,qe; for(int i=1; i<=p; i++){ cin>>qw>>qe; g[qw].push_back(qe); g[qe].push_back(qw); } bfs(); return 0; } //deg