Pagini recente » Cod sursa (job #1916799) | Cod sursa (job #2701494) | Cod sursa (job #1851789) | Cod sursa (job #2272823) | Cod sursa (job #1772860)
#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; o ++){
for(int i = o; i <= n; i++)
for(int j = o; j <= n; j ++){
M[C[i]][C[j]] = N[C[i]][C[j]];
V[C[i]][C[j]] = max(P[C[i]],P[C[j]]);
v[C[i]][C[j]] = min(P[C[i]],P[C[j]]);
}
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]]);
v[C[i]][C[j]] = min(v[C[i]][C[k]],v[C[k]][C[j]]);
if(M[C[i]][C[j]] == T){
fout << C[i] << " " << C[j] << " " << v[C[i]][C[j]] << " " << V[C[i]][C[j]];
return ;
}
}
}
/* for(int i = 1; i <= n; i++) {
for(int j = 1; j <= n; j++)
fout << M[i][j] << " ";
fout << "\n";
}
fout << "\n" << "\n";
*/
}
}
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 >> P[i];
C[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 = P[i]; p = i;
for(int j = i + 1; j <= n; j ++)
if(P[j] < mn){
mn = P[j];
p = j;
}
aux = P[i];
P[i] = mn;
P[p] = aux;
aux = C[i];
C[i] = p;
C[p] = aux;
}
Coach(n,T);
return 0;
}