hiho week 115 register

Ended

Participants:333

Verdict:Accepted
Score:100 / 100
Submitted:2016-09-11 00:03:13

Lang:G++

Edit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include<bits/stdc++.h>
using namespace std;
const int maxN = 505;
const int inf = 0x3f3f3f3f;
int cf[maxN][maxN];
int pre[maxN], cap[maxN];
int Q[maxN], visited[maxN];
map<int, set<int>> neighbour;
int a, b, c;
int n, m;
int find_cf(){
    memset(visited, 0, sizeof(visited));
    int p = 0, q = 0;
    Q[q++] = 1;
    cap[1] = inf;
    while(p < q){
        int u = Q[--q];
        for(auto v : neighbour[u]){
            if(cf[u][v] > 0 && !visited[v]){
                cap[v] = min(cap[u], cf[u][v]);
                pre[v] = u;
                if(v == n)
                    return cap[v];
                visited[v] = 1;
                Q[q++] = v;
            }
        }
    }
    return 0;
}
int main(){
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX