Cod sursa(job #1399605)

Utilizator mariana-geanina.stroeStroe Mariana Geanina mariana-geanina.stroe Data 24 martie 2015 20:29:16
Problema Sate Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.26 kb
# include<iostream>
# include<fstream>
using namespace std;
ifstream f("sate.in",ios::in);
ofstream g("sate.out");
int n,m,a[1001][1001],viz[1001],c[1001],d[1001],t[1001],p,u,i,x,y,Start,Sosire,dist;

int main()
{
    f>>n>>m>>Start>>Sosire;
    for(i=1;i<=m;i++)
    {
        f>>x>>y>>dist;
        cout<<x<<" "<<y<<" "<<dist<<"\n";
        a[x][y]=a[y][x]=dist;
    }
    c[1]=Start;
    viz[Start]=1;
    p=u=1;
    while(p<=u)
    {
        y=c[p];
        for(i=1;i<=n;i++)
            if(a[i][y]!=0 && viz[i]==0)
            {
                viz[i]=1;
                u++;
                c[u]=i;
                t[i]=y;
            }
            p++;
    }
    int Sos=Sosire;
    d[1]=Sosire;
    int k=1;
    dist=0;
    while(Sosire!=Start)
    {
        k++;
        d[k]=t[Sosire];
        if(Sosire>t[Sosire])
            dist+=a[Sosire][t[Sosire]];
                else dist-=a[Sosire][t[Sosire]];
        Sosire=t[Sosire];
    }
    if(dist!=0)
    {
       // cout<<"Drumul de la "<<Start<<" pana la "<<Sos<<" este:\n";
        //fo//r(i=k;i>=1;i--)
          //  cout<<d[i]<<" ";
        //cout<<"\n";
        g<<dist;
    }
        else cout<<"Distanta nu poate fi calculata\n";
        cout<<dist;
    return 0;
}