#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int n, m;
vector<int> v[2][2020];
bitset<500000> b[2][2020];
void dfs(int u, int t) {
for(auto x : v[t][u]) {
b[t][x] |= b[t][u];
dfs(x, t);
}
}
int main() {
cin.tie(0)->sync_with_stdio(0);
cin >> n >> m;
for(int i=1;i<=n;i++) {
int x, y; cin >> x >> y;
v[0][x].push_back(i);
v[1][y].push_back(i);
}
for(int i=0;i<m;i++) {
int x, y; cin >> x >> y;
b[0][x][i] = b[1][y][i] = 1;
}
dfs(0, 0), dfs(0, 1);
for(int i=1;i<=n;i++) cout << (b[0][i] & b[1][i]).count() << "\n";
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |