Pagini recente » Cod sursa (job #205528) | Cod sursa (job #1784566) | Cod sursa (job #2077985) | Cod sursa (job #779868) | Cod sursa (job #1648735)
#include <fstream>
#include <vector>
#define x first
#define y second
#define mp make_pair
using namespace std;
ifstream fin("permuta.in");
ofstream fout("permuta.out");
int i,j,n,m,f[1005],a,b,c,nod;
queue <int> q,o;
vector <pair<int,int> > v[1005],inv[1005];
int main()
{
fin >> n >> m;
for(i = 1; i <= n; i++)
{
fin >> a >> b >> c;
if(a == 1)
{
q.push_back(b);
f[b] = c;
}
else
v[a].push_back(mp(b, c));
}
while(q.size())
{
nod = q.front(),q.pop();
for(i = 0; i < v[nod].size() && f[nod]; i++)
{
if(v[nod][i].y)
{
a = min(v[nod][i].y, f[nod]);
f[nod] -= a;
f[ v[nod][i].x ] += a;
v[nod][i].y -= a;
if(v[nod][i].x != n)
{
inv[ v[nod][i].x ].push_back(mp(nod, a));
q.push_back(v[nod][i].x);
}
}
}
if(f[nod])
o.push_back(nod);
}
while(o.size())
{
g(o.front());
o.pop();
}
return 0;
}