Cod sursa(job #3152226)

Utilizator Irina_ZZamfir Irina Irina_Z Data 24 septembrie 2023 13:41:46
Problema Flux maxim Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.95 kb
#include <bits/stdc++.h>
using namespace std;

//ifstream in("apa.in");
//ofstream out("apa.out");

ifstream in("maxflow.in");
ofstream out("maxflow.out");

int n, m, g[1001][1001], p[1001], d[1001];
int x, y, c;

queue<int> coada;

void bfs(int x)
{
    coada.push(x);

    while(!coada.empty())
    {
        x=coada.front();

        for(int i=1; i<=n; i++)
        {
            if(g[x][i]>0 && i!=x)
            {
                int val=min(p[i], d[x]);
                coada.push(i);
                d[x]-=min(val, g[x][i]);
                p[i]-=min(val, g[x][i]);
                d[i]+=min(val, g[x][i]);
            }
        }

        coada.pop();
    }
}

int main()
{
    in >> n >> m;

    //int m=10;
    for(int i=1; i<=m; i++)
    {
        in >> x >> y >> c;
        g[x][y]=c;

        if(x==1)
            d[x]+=c;

        p[y]+=c;
    }

    bfs(1);

    out << d[n];

    return 0;
}