Cod sursa(job #3201636)

Utilizator XIIs12sPeteleu Denis Andrei XIIs12s Data 9 februarie 2024 11:58:19
Problema Sate Scor 0
Compilator cpp-64 Status done
Runda Teme Pregatire ACM Unibuc 2013 Marime 1.08 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("sate.in");
ofstream g("sate.out");
int n,m,x,y,a,b,c;
int t[3][200048],start[30001],viz[400001];
int bfs(int start1)
{
    int st,dr;
    int c[1000001];
    st=dr=1;
    c[st]=start1;
    int val = 1;
    while(st<=dr)
    {
        int k=c[st];
        int man=start[k];
        while(man)
        {
            if(viz[t[0][man]]==0)
            {
                dr++;
                c[dr]=t[0][k];
                if(c[dr]>c[st])
                    val+=t[2][man];
                else
                    val-=t[2][man];

            }
        }
        if(c[dr]==y)
           return val;
        st++;
    }
    return 0;
}
int main()
{
   f>>n>>m>>x>>y;
   int k=0;
   for(int i=1;i<=m;i++)
   {
       f>>a>>b>>c;
       k++;
       t[0][k]=b;
       t[1][k]=start[a];
       t[2][k]=c;
       start[a]=k;
        k++;
       t[0][k]=a;
       t[1][k]=start[b];
       t[2][k]=c;
       start[b]=k;
   }
    cout<<x;
    cout<<y;
    g<<bfs(x);
    return 0;
}