| 2 | bool* done; |
| 3 | int* owner; |
| 4 | int alternating_path(int left) { |
| 5 | if (done[left]) return 0; |
| 6 | done[left] = true; |
| 7 | rep(i,0,size(adj[left])) { |
| 8 | int right = adj[left][i]; |
| 9 | if (owner[right] == -1 || |
| 10 | alternating_path(owner[right])) { |
| 11 | owner[right] = left; return 1; } } |
| 12 | return 0; } |
| 13 | // vim: cc=60 ts=2 sts=2 sw=2: |