Nu aveti permisiuni pentru a descarca fisierul grader_test2.in
Cod sursa(job #906585)
| Utilizator | Data | 6 martie 2013 22:05:34 | |
|---|---|---|---|
| Problema | Sate | Scor | 45 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.78 kb |
#include<fstream>
using namespace std;
int n,m,x,y,a[2000][2000],sol[2000],d[2000];
void citire()
{
ifstream fin("sate.in");
fin>>n>>m>>x>>y;
int c1,c2,c3;
for(;m;m--)
{
fin>>c1>>c2>>c3;
a[c1][c2]=a[c2][c1]=c3;
}
}
void bfs(int x)
{
sol[1]=x;
d[x]=0;
int dr=1;
for(int i=1;i<=dr;i++)
for(int j=1;j<=n;j++)
if(a[sol[i]][j]!=0&&!d[j])
{
sol[++dr]=j;
if(sol[i]<j)
d[j]=d[sol[i]]+a[sol[i]][j];
else
d[j]=d[sol[i]]-a[sol[i]][j];
}
}
void afisare()
{
ofstream fout("sate.out");
fout<<d[y];
}
int main()
{
citire();
bfs(x);
afisare();
return 0;
}
