#include #include const int MAX_INT=999999; int graph[200][200]; int T[200]; int nk[200]; int t1[200]; int SIZE; class ED { public : int val; int from; int to; }; vector heap; vector set1; vector set2; int n,t,k; int dij() { bool mark[SIZE]; vector extracted(SIZE); ED e; int i,j,min; for(i=0;i=k) { t1[i]=T[i]; set1.push_back(i); // cout << "\npushed L : " << i; mark[i] = true; if(i==t) { return 1; } for(j=0;jt1[set1[j]]) { int temp=set1[i]; set1[i]=set1[j]; set1[j]=temp; } } } while(1) { min = -1; for(i=0;i=k) { t1[i] = e.val; set1.push_back(i); mark[i]=true; // cout << "\npushed : " << i; if(i==t) return 1; // add edges for(j=0;j> n >> t >> k; SIZE=n; int i,j,val,val1; for(i=0;i> val; T[i]=val; while(1) { cin >> val; if(val==-1) break; cin >> val1; graph[val][i]=val1; // cout << "\nval : " << val << " " << val1; } } // now assign value of k for(i=0;i