Cod sursa(job #990327)

Utilizator classiusCobuz Andrei classius Data 27 august 2013 22:43:28
Problema Principiul includerii si excluderii Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.11 kb
#include <fstream>
#include <map>
#include <vector>
#include <queue>
#define uv (v[i].nebs[j])
#define flw (v[i].flow[v[i].nebs[j]])
using namespace std;

ifstream f("date.in");
ofstream g("date.out");

struct node{
    vector<int> nebs;
    map<int,int> flow;
};
node v[1001];

bool bfs(int parent[],int son[]){

    bool ok[1001]={};
    ok[1]=1;
    q.push(1);

    while(!q.empty()){
        int i=q.front();
        q.pop();
        for(unsigned j=0;j<v[i].nebs.size();j++){
            if(!ok[uv]&&flw>0&&uv!=n){
                ok[uv]=1;
                parent[uv]=i;
                q.push(uv);
            }
            if(uv==n&&flw>0){
                ok[uv]=1;
                son[++son[0]]=i;
            }
        }
    }

    return ok[n];
}

int main()
{
    int n,m;
    f>>n>>m;

    for(int i=1;i<=m;i++){
        int x,y,cs;
        f>>x>>y>>cs;
        v[x].nebs.push_back(y);
        v[x].flow[y]=cs;
        v[y].nebs.push_back(x);
        v[y].flow[x]=0;
    }

    int parent[1001],son[1001];
    int s=0;

    while(bfs(parent,son)){

        for(int t=1;t<=son[0];t++){

        }
    }


    return 0;
}