Submission #1189289

#TimeUsernameProblemLanguageResultExecution timeMemory
1189289JooDdae스파이 (JOI13_spy)C++20
100 / 100
258 ms245488 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...