Cod sursa(job #868105)

Utilizator Bigb21Avram Bogdan Bigb21 Data 30 ianuarie 2013 17:39:20
Problema Sate Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.26 kb
#include<iostream>
#include<fstream>
#include<vector>
#include<algorithm>
#define NMAX 7502
using namespace std;
ifstream in("sate.in");
ofstream out("sate.out");

vector <int>v[NMAX];
 long  viz[NMAX],c[NMAX][NMAX];
int n,m,x,y,cod[NMAX];
void read ()
{
     int a,b;
      long p;
      in>>n>>m>>x>>y;

      for(int i=1; i<=m;++i)
         {
             in>>a>>b>>p;
             v[a].push_back(b);
             v[b].push_back(a);

              c[a][b]=c[b][a]=p;
         }

}

int main ()
{
    read();

    int p,k;
    p=k=1;

    cod[p]=x;

    while(p<=k)
    {
          for(int j=0; j<v[cod[p]].size(); ++j )
          if(!viz[v[cod[p]][j]] &&  v[cod[p]][j]!=x)
               {
                    cod[++k]=v[cod[p]][j];

                    if(cod[p]>v[cod[p]][j])
                    viz[v[cod[p]][j]]=viz[cod[p]]-c[cod[p]][v[cod[p]][j]];
                    else
                     viz[v[cod[p]][j]]=viz[cod[p]]+c[cod[p]][v[cod[p]][j]];
               }



                if(cod[p]==y)
                   {
                       out<<viz[cod[p]];
                       break;
                   }


                    p++;
    }

       in.close();
       out.close();
       return 0;

    }