Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- int n, m, from, to, e;
- vector < vector <int> > v;
- int bfs(int cur) {
- queue<int> q;
- q.push(cur);
- vector <bool> used(n, false);
- vector <int> d(n, 0);
- used[cur] = true;
- while(!q.empty()) {
- int now = q.front();
- q.pop();
- for (int i = 0; i < v[now].size(); i++) {
- if (!used[v[now][i]]) {
- used[v[now][i]] = true;
- q.push(v[now][i]);
- d[v[now][i]] = d[now] + 1;
- if(d[v[now][i]] == 3) break;
- }
- }
- }
- return count(d.begin(), d.end(), 2);
- }
- int main () {
- ios::sync_with_stdio(0);
- cin.tie(0);
- cin >> n >> m;
- char c;
- v.resize(n);
- for (int i = 0; i < m; i++) {
- cin >> c;
- if (c == '+') {
- cin >> from >> to;
- from--; to--;
- v[from].push_back(to);
- } else {
- cin >> e;
- e--;
- cout << bfs(e) << '\n';
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement