Cod sursa(job #1168711)

Utilizator cs1m0nFMI - Costea Simon-Adrian cs1m0n Data 9 aprilie 2014 12:39:12
Problema Sate Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.17 kb
#include<iostream>
#include<fstream>

using namespace std;

ifstream f("sate.in");
ofstream g("sate.out");

short int N, X, Y;
int M, D;
int i, j, vizitat[50];
int suma=0;


typedef struct nod2
{
  int a[50], dist[50];        
};
nod2 * lista[50]; 


// Introducere lista de adiacenta
void ad(int k)
{      
  f>>i; f>>j; f>>D;     
      
  lista[i]->dist[j]=D; 
  lista[j]->dist[i]=-D;   
     
}
// ------------------------------


void calcul(int x, int y)
{
  while(x != y)
    for(j=1;j<=N;j++)
      if(lista[x]->dist[j] != 0 && vizitat[j] != 1)
      { 
        suma+=lista[x]->dist[j];   
        vizitat[x]=1;                        
        x=j;
        break;
      }   
        
   g<<suma;
}


int main()
{
  int a, b;

  // Citim date din fisier
  f>>N; f>>M; f>>X; f>>Y;
  
  
  // Initializare lista de distanta si lista de noduri vizitate
  for(a=1;a<=N;a++)
  { 
    lista[a] = new nod2;
    vizitat[a]=0;
    
    for(b=1;b<=N;b++)
    { lista[a]->dist[b]=0; }
  }
  
  // Adaugare lista de adiacenta
  for(a=1;a<=M;a++)
    ad(a);

  calcul(X, Y);  
  

  f.close();
  g.close();

  return 0;    
}