Pagini recente » Cod sursa (job #1412507) | Cod sursa (job #449240) | Cod sursa (job #287369) | Cod sursa (job #2770296) | Cod sursa (job #293227)
Cod sursa(job #293227)
#include <fstream>
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;
}
f.close();
}
int 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();
return 0;
}