#include using namespace std; int n;vector> vec(1000); vector uniquePerLength(1000,-1); vector res; int minDistance; void FindPahts(int lastCity,bool metCities[],int filledUnique,vector trip,int steps) { if(steps+(n-filledUnique)>minDistance) { return; } if(uniquePerLength[steps]>filledUnique) return; uniquePerLength[steps]=filledUnique; if(filledUnique==n) { res=trip; minDistance=steps; return; } for(int i=0;i>n>>m; vector cities(n); int resulting[n+1]; minDistance=3*n; for(int i=0;i>cities[i]; } sort(cities.begin(),cities.end()); int city1;int city2; pair newP; for(int i=0;i>city1>>city2; vec[city1].push_back(city2); vec[city2].push_back(city1); } int smallest=-1;int times=n*n; for(int i=1;i<=n;i++) { if(vec[i].size() trip; trip.push_back(smallest); FindPahts(smallest,metIndexes,1,trip,1); int val[n+1]; memset(val,0,sizeof(val)); val[res[0]]=cities[0]; int indexer=1; for(int i=1;i cityOutput; bool met[n+1]; memset(met,false,sizeof(met)); int metThatDay=0; string numsRemember=""; for(int i=0;i