Pagini recente »
Istoria paginii utilizator/ilie_2008
|
genii
|
Istoria paginii runda/lasm_15_01_cl11_12
|
Istoria paginii runda/nu_pti_lua_peste_80_de_pt
|
Cod sursă (job #153328)
Cod sursă (job
#153328)
#include <iostream>
#include <cstdio>
using namespace std;
FILE *in, *out;
const int dmax = 800;
int VARIANTA;
int N,M;
int D_max[dmax+1];
bool A[dmax+1][dmax+1];
bool viz[dmax+1];
int MAX;
void CITIRE()
{
in = fopen("dragoni2.in", "r");
out = fopen("dragoni2.out", "w");
fscanf(in, "%d", &VARIANTA);
fscanf(in, "%d %d", &N,&M);
for(int i=1; i<=N; i++) fscanf(in, "%d", &D_max[i]);
for(int i=1; i<=M; i++)
{
int x,y,D;
fscanf(in, "%d %d %d", &x,&y,&D);
if(D <= D_max[1]) A[x][y] = A[y][x] = true;
}
}
void DFS(int nod)
{
viz[nod] = true;
if(D_max[nod] > D_max[1]) MAX = D_max[nod];
for(int i=1; i<=N; i++)
if(viz[i]==false && A[nod][i] == true) DFS(i);
}
int main()
{
CITIRE();
MAX = D_max[1]; DFS(1);
fprintf(out, "%d", MAX);
return 0;
}