AcWing 373,WA On test#3,code:
# include <bits/stdc++.h>
# define ffor(i,name) \
for (auto i = name.begin (); i != name.end (); i ++)
using namespace std;
typedef long long ll;
typedef pair <int, int> pii;
int n, m, k, x, y, sum, p[205];
bool a[205][205], vis[205];
bool dfs (int x) {
for (int i = 0; i < m; ++ i)
if (! vis[i] && a[x][i]) {
vis[i] = 1;
if (! p[i] || dfs (p[i]))
return p[i] = x, 1;
}
return 0;
}
int main () {
ios::sync_with_stdio (0);
cin.tie (0);
cout.tie (0);
cin >> n >> m >> k;
for (int i = 0; i < n; ++ i)
for (int j = 0; j < m; ++ j)
a[i][j] = 1;
while (k --) {
cin >> x >> y;
a[x - 1][y - 1] = 0;
}
for (int i = 0; i < n; ++ i) {
for (int k = 0; k < m; ++ k)
vis[k] = 0;
sum += dfs (i);
}
cout << sum;
return 0;
}