Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <cstdio>#include <cstring>#define MAXN 1010int matrix[MAXN][MAXN];int visited[MAXN];int match[MAXN];int color[MAXN];int n, m;bool find(int v) {if(visited[v])return false;visited[v] = 1;for(int u = 1; u <= n; u++)if(matrix[v][u] && !visited[u]) {visited[u] = 1;if(!match[u] || find(match[u])) {match[u] = v;return true;}}return false;}void dfs(int v) {for(int u = 1; u <= n; u++)if(matrix[v][u] && !color[u]) {color[u] = -color[v];