#include<cstdio> #include<vector> #include<cstring> using namespace std; int n, m, k1, k2, r[301], vis[301]; vector<int> adj[301]; bool f(int h) { if (vis[h]) return false; vis[h] = 1; for (auto it : adj[h]) if (!r[it] || f(r[it])) { r[it] = h; return true; } return false; } int main() { scanf("%d%d%d%d", &n, &m, &k1, &k2); for (int i = 0, x, y; i < k1; i++) { scanf("%d%d", &x, &y); adj[x].push_back(y); } int a = 0, b = 0; for (int i = 1; i <= n; i++) { memset(vis, 0, sizeof(vis)); a += f(i); } memset(r, 0, sizeof(r)); for (int i = 1; i <= n; i++) adj[i].clear(); for (int i = 0, x, y; i < k2; i++) { scanf("%d%d", &x, &y); adj[x].push_back(y); } for (int i = 1; i <= n; i++) { memset(vis, 0, sizeof(vis)); b += f(i); } puts(a < b ? "네 다음 힐딱이" : "그만 알아보자"); return 0; }
14433번: 한조 대기 중
https://www.acmicpc.net/problem/14433
피드 구독하기:
댓글
(
Atom
)
댓글 없음 :
댓글 쓰기