Cod sursa(job #1576283)

Utilizator nituandreiNitu Andrei nituandrei Data 22 ianuarie 2016 11:39:58
Problema Sate Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.92 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("sate.in");
ofstream g("sate.out");
bool l[100024];
struct dist
{
    int a,b,d;
} v[100024],c;
int main()
{
    int n,m,x,y,i;
    bool k;
    f>>n>>m>>x>>y;
    for(i=0; i<m; i++)
    {
        f>>v[i].a>>v[i].b>>v[i].d;
        if(v[i].a==x)
        {
            c.a=v[i].a;
            c.b=v[i].b;
            c.d=v[i].d;
            l[i]=1;
            k=0;
            break;
        }
        if(v[i].b==y)
        {
            c.a=v[i].a;
            c.b=v[i].b;
            c.d=v[i].d;
            l[i]=1;
            k=1;
            break;
        }
    }
    i++;
    while(i<m)
    {
        f>>v[i].a>>v[i].b>>v[i].d;
        i++;
    }
    if(k==0)
    {
        while(c.a!=x || c.b!=y)
        {
            i=0;
            while(n)
            {
                if(v[i].b==c.b && l[i]==false)
                {
                    c.b=v[i].a;
                    c.d-=v[i].d;
                    l[i]=1;
                    break;
                }
                if(v[i].a==c.b && l[i]==0)
                {
                    c.b=v[i].b;
                    c.d+=v[i].d;
                    l[i]=1;
                    break;
                }
                i++;
            }
        }
    }
    else
    {
        while(c.a!=x || c.b!=y)
        {
            i=0;
            while(n)
            {
                if(v[i].b==c.a && l[i]==false)
                {
                    c.a=v[i].a;
                    c.d+=v[i].d;
                    l[i]=1;
                    break;
                }
                if(v[i].a==c.a && l[i]==0)
                {
                    c.a=v[i].b;
                    c.d-=v[i].d;
                    l[i]=1;
                    break;
                }
                i++;
            }
        }
    }
    g<<c.d;
}