Cod sursa(job #293224)

Utilizator andrei90andrei andrei90 Data 1 aprilie 2009 08:55:02
Problema Algola Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include<fstream.h>
int a[100][100],v[100],x,y,l,pas,n,m;
const int INF=30000;
ifstream f("algola.in");
ofstream g("algola.out");
void citire()
{ int i,j;
  f>>n>>m;
  for(i=1;i<=n;i++)
   f>>v[i];
  for(i=1;i<n;i++)
   for(j=i+1;j<=n;j++)
     a[i][j]=a[j][i]=INF;
  for(i=1;i<=m;i++)
   { f>>x>>y>>l;
     if(x==1)
      a[y][x]=l;
     else
      a[x][y]=l;
   }
}
void main()
{int i,j,r,ok=1;
 citire();
 while(ok)
 {pas++;
 for(i=2;i<=n;i++)
  if(a[i][1]!=INF && a[i][1]!=0)
    v[i]-=a[i][1];
  else
    {r=0;
     if(a[i][1]==INF)
      for(j=1;j<=n;j++)
       if(a[i][j]!=INF && a[i][j]!=0 && v[j]!=0)
	{r=a[j][1]-v[j];
	 v[j]+=r;
	 v[i]-=r;
	}
    }
  ok=0;
  for(i=1;i<=n&&!ok;i++)
   if(v[i]!=0)
    ok=1;
 }
 g<<pas;
 g.close();
}