Cod sursa(job #674731)

Utilizator EstarDaian Dragos Estar Data 6 februarie 2012 18:03:09
Problema Flux maxim Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <fstream>
#include <vector>

using namespace std;

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

struct muchie{
  int i,c;
  muchie(int i1 , int c1){
    i=i1;
    c=c1;
  }
};

struct nod{
  int i;
  vector<muchie> next;
  nod(int j){
    i=j;
  };
};

int n , m,sol;
vector<nod> a;

void gofrom(int i,int c){
  if(i==n-1){
    sol+=c;
    return;
  }
  for(int j=0;j<(signed)a[i].next.size();j++){
      if(!i)c=a[i].next[j].c;
    gofrom(a[i].next[j].i,min(a[i].next[j].c,c));
    a[i].next[j].c-=min(a[i].next[j].c,c);
  }
}

int main(){
    fi>>n>>m;
    for(int i=0;i<n;i++)
    a.push_back(nod(i));
    for(int i=0;i<m;i++){
      int x , y, c;
      fi>>x>>y>>c;
      a[x-1].next.push_back(muchie(y-1,c));
    }
    //for(int i=0;i<n;i++){
      gofrom(0,0);
    //}
    fo<<sol;
    return 0;
}