Cod sursă (job #439789)

Utilizator avatar Alin Lazar Andrei Alin Daniel Alin IP ascuns
Problemă Dragoni2 (clasele 11-12) Compilator cpp | 1,46 kb
Rundă Arhiva de probleme Status evaluat
Dată 27 feb. 2019 11:35:08 Scor 20
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    int i,j,n,m;
    ifstream f("dragoni2.in");
    ofstream g("dragoni2.out");
    int v;
    f>>v;
    f>>n>>m;
    int a[n+1];
    for (i=1;i<=n;i++)
        f>>a[i];
    int b[n+1][n+1];
    int ins1[m+1],ins2[m+1],dist[m+1];
    for (i=1;i<=m;i++)
        f>>ins1[i]>>ins2[i]>>dist[i];
    if (v==1)
    {
        bool lock[n+1];
        for (i=1;i<=n;i++)
            lock[i]=false;
        lock[1]=true;
        int maxim=0;
        for (i=1;i<=n;i++)
        {
            if ((lock[ins1[i]]==true) && (dist[i]<=a[1]))
                lock[ins2[i]]=true;
            else
            if ((lock[ins2[i]]==true) && (dist[i]<=a[1]))
                lock[ins1[i]]=true;
        }
        for (i=1;i<=n;i++)
            if ((lock[i]==true) && (maxim<a[i]))
            {
                maxim=a[i];
            }
        g<<maxim;
        /*for (i=1;i<=n;i++)
            {
                for (j=1;j<=n;j++)
                    cout<<b[i][j]<<" ";
                cout<<endl;
            }*/

    }
    else
    {
        for (i=1;i<=n;i++)
            for (j=1;j<=n;j++)
                b[i][j]=0;
        for (i=1;i<=n;i++)
            cout<<a[i]<<endl;
        for (i=1;i<=m;i++)
        {
            b[ins1[i]][ins2[i]]=dist[i];
            b[ins2[i]][ins1[i]]=dist[i];
        }
        i=1;
    }
    f.close();
    g.close();
    return 0;
}