Pagini recente » Cod sursa (job #1108331) | Diferente pentru implica-te/arhiva-educationala intre reviziile 106 si 107 | Cod sursa (job #1844874) | Cod sursa (job #1652893) | Cod sursa (job #1772691)
#include <bits/stdc++.h>
const int NMAX = 105;
using namespace std;
ifstream fin("coach.in");
ofstream fout("coach.out");
int M[NMAX][NMAX],N[NMAX][NMAX],V[NMAX][NMAX],v[NMAX][NMAX];
int D[NMAX],C[NMAX],P[NMAX];
void Coach(int n,int T){
for(int o = 1; o <= n; i ++){
for(int i = o; i <= n; i++)
for(int j = o; j <= n; j ++)
for(int k = o; k <= n; k ++){
if((M[C[i][C[j]] > M[C[i]][C[k]] + M[C[k]][C[j]] || M[C[i][C[j]] == 0 ) && i != j && M[C[i]][C[k]] && M[C[k]][C[j]]){
M[C[i][C[j]] = M[C[i]][C[k]] + M[C[k]][C[j]];
V[C[i][C[j]] = max(V[C[i]][C[k]],V[C[k]][C[j]]);
if(M[C[i][C[j]] == T){
fout << C[i] << " " << C[j] << " " << C[i] << " " << C[j];
return ;
}
}
}
}
}
int main()
{
ios :: sync_with_stdio(false);
fin.tie(NULL);
int n,m,T,x,y,c,mn,p,aux,mx;
fin >> n >> m >> T;
for(int i = 1; i <= n; i++){
fin >> C[i];
P[i] = i;
}
for(int i = 1; i <= m; i++){
fin >> x >> y >> c;
M[x][y] = N[x][y] = c;
}
for(int i = 1; i < n; i ++){
mn = C[i]; p = i;
for(int j = i + 1; j <= n; j ++)
if(C[j] < mn){
mn = C[j];
p = j;
}
aux = C[i];
C[i] = mn;
C[p] = aux;
aux = P[i];
P[i] = p;
P[p] = aux;
}
Coach(n,T);
return 0;
}