Submission #864549

#TimeUsernameProblemLanguageResultExecution timeMemory
864549maks007Railway (BOI17_railway)C++14
8 / 100
1054 ms27552 KiB
// Bismi ALlah #include "bits/stdc++.h" using namespace std; vector <vector <int>> g; int f; multiset <pair <int,int>> path; void dfs(int v, const int & target, int p = -1) { if(p != -1) path.insert({min(v, p), max(v, p)}); if(v == target) { f = 1; return; } for(auto u : g[v]) { if(u == p) continue; dfs(u, target, v); if(f) return; } path.erase(path.find({min(v, p), max(v, p)})); } signed main () { int n, m, k; cin >> n >> m >> k; g.resize(n); map <pair <int,int>,int> edge; vector <int> cnt(n-1, 0); for(int i = 0; i < n - 1; i ++) { int u, v; cin >> u >> v; u --, v --; edge[{min(u, v), max(u, v)}] = i; g[v].push_back(u); g[u].push_back(v); } for(;m>=1;m--) { int sz; cin >> sz; vector <int> need; for(int v;sz>=1;sz--) { cin >> v; v --; need.push_back(v); } int prev = need[0]; for(int i = 1; i < need.size(); i ++) { f = 0; dfs(need[i], prev); } set <pair <int,int>> forPath; for(auto i : path) forPath.insert(i); for(auto i : forPath) { // cout << i.first + 1 << " " << i.second + 1 << "\n"; cnt[edge[i]] ++; } //cout << "\n"; path.clear(); } vector <int> ans; for(int i= 0; i < cnt.size(); i ++) { if(cnt[i] >= k) ans.push_back(i + 1); } cout << ans.size() << "\n"; for(auto i : ans) cout << i << " "; return 0; }

Compilation message (stderr)

railway.cpp: In function 'int main()':
railway.cpp:48:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   48 |   for(int i = 1; i < need.size(); i ++) {
      |                  ~~^~~~~~~~~~~~~
railway.cpp:62:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   62 |  for(int i= 0; i < cnt.size(); i ++) {
      |                ~~^~~~~~~~~~~~
#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...