제출 #1306171

#제출 시각아이디문제언어결과실행 시간메모리
1306171Robert_juniorRailway (BOI17_railway)C++20
23 / 100
1096 ms16860 KiB
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define ll long long
#define all(x) x.begin(), x.end()
#define ins insert
#define pb push_back
#define F first
#define S second
#define bt bitset<5010>
const int N = 1e5 + 100, K = 1610;
const int mod = 998244353;
vector<pair<int, int>>g[N];
int sz[N];
int cnt[N];
int n, m, k, z;
void dfs(int v, int p){
	for(auto [to, idx] : g[v]){
		if(to == p) continue;
		dfs(to, v);
		if(sz[to] != z && sz[to] != 0) cnt[idx]++;
		sz[v] += sz[to];
	}
}
void solve(){
	cin>>n>>m>>k;
	for(int i = 1; i <= n - 1; i++){
		int u, v;
		cin>>u>>v;
		g[u].pb({v, i});
		g[v].pb({u, i});
	}
	for(int i = 1; i <= m; i++){
		for(int j = 1; j <= n; j++){
			sz[j] = 0;
		}
		cin>>z;
		for(int j = 1; j <= z; j++){
			int x; 
			cin>>x;
			sz[x] = 1; 
		}
		dfs(1, 1);
	}
	vector<int>ans;
	for(int i = 1; i <= n - 1; i++){
		if(cnt[i] >= k) ans.pb(i);
	}
	cout<<ans.size()<<'\n';
	for(auto it : ans){
		cout<<it<<' ';
	}
}
main(){
	ios_base :: sync_with_stdio(false); 
	cin.tie(nullptr);
	int t = 1;
	//cin>>t;
	while(t--){
		solve();
	}
}

컴파일 시 표준 에러 (stderr) 메시지

railway.cpp:54:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   54 | main(){
      | ^~~~
#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...