제출 #447906

#제출 시각아이디문제언어결과실행 시간메모리
447906zxcvbnmTraffic (CEOI11_tra)C++14
32 / 100
86 ms11836 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; const int nax = 6005; #define x first #define y second int n, m, a, b; vector<int> adj[nax]; vector<pair<int, int>> p; vector<int> from, to; int bfs(int s) { vector<bool> vis(n+1, false); queue<int> q; q.push(s); vis[s] = true; while(!q.empty()) { int v = q.front(); q.pop(); for(int u : adj[v]) { if (!vis[u]) { q.push(u); vis[u] = true; } } } int cnt = 0; for(int i : to) { if (vis[i]) { cnt++; } } return cnt; } int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cin >> n >> m >> a >> b; p.resize(n); for(int i = 0; i < n; i++) { cin >> p[i].x >> p[i].y; if (p[i].x == 0) { from.push_back(i); } else if (p[i].x == a) { to.push_back(i); } } for(int i = 0; i < m; i++) { int v1, v2, type; cin >> v1 >> v2 >> type; v1--, v2--; adj[v1].push_back(v2); if (type == 2) { adj[v2].push_back(v1); } } sort(from.begin(), from.end(), [&](const int& left, const int& right) { return p[left].y > p[right].y; }); vector<int> ans; for(int i : from) { ans.push_back(bfs(i)); // cout << i << " " << ans.back() << "\n"; } for(int i : ans) { cout << i << "\n"; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...