Cod sursa(job #1576283)
Utilizator | 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;
}