Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <stdio.h>#include <limits.h>#include <memory.h>#include <queue>using namespace std;#define MAXN 10005#define MAXM 200010#define MIN(a,b) ((a)<(b)?(a):(b))#define MAX(a,b) ((a)>(b)?(a):(b))int U[MAXM], V[MAXM], W[MAXM];int gfirst[MAXN];int gnext[MAXM];bool vis[MAXN];int bfs(int st, int T, int C, int K) {queue<pair<int,int> > Q;Q.push(make_pair(st, 0));vis[st] = true;while(!Q.empty()) {int u = Q.front().first;int k = Q.front().second;Q.pop();