Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <cstdio>#include <algorithm>#include <memory.h>#include <vector>using namespace std;const int MAX = (1000+10);int n,m;int match[MAX];// right match informationint visited[MAX];vector<vector<int> > graph(MAX);bool dfs(int u){for(int i=0;i<graph[u].size();i++){int v = graph[u][i];if(1==visited[v])continue;visited[v] = 1;if(match[v]==-1||dfs(match[v])){match[v] = u;return true;}}return false;}int main(){scanf("%d%d",&n,&m);