Cod sursă (job #429328)

Utilizator avatar ezioconnor Vlad - Gabriel Iftimescu ezioconnor IP ascuns
Problemă Dragoni2 (clasele 11-12) Compilator cpp | 1,02 kb
Rundă Arhiva de probleme Status evaluat
Dată 3 feb. 2019 10:37:29 Scor 20
#include <fstream>
#include <vector>

using namespace std;

ifstream in("dragoni2.in");
ofstream out("dragoni2.out");

int n, m, p, v[801], MAX1;
bool vizitat[801];
vector < pair <int, int> > Muchii[801];

void DFS(int nod, int eDragon)
{
    int vecin, cost;
    if (v[nod] > MAX1)
        MAX1 = v[nod];
    vizitat[nod] = 1;
    for (int i = 0; i < Muchii[nod].size(); ++i)
    {
        vecin = Muchii[nod][i].first;
        cost = Muchii[nod][i].second;
        if (vizitat[vecin] == 0 && cost <= eDragon)
            DFS(vecin, eDragon);
    }
}

void rezolvare1()
{
    MAX1 = v[1];
    DFS(1, v[1]);
    out << MAX1;
}

void citire()
{
    int x, y, c;
    in >> p >> n >> m;
    for (int i = 1; i <= n; ++i)
        in >> v[i];
    for (int i = 1; i <= m; ++i)
    {
        in >> x >> y >> c;
        Muchii[x].push_back(make_pair(y, c));
        Muchii[y].push_back(make_pair(x, c));
    }
    if (p == 1)
        rezolvare1();
}

int main()
{
    citire();
    return 0;
}