2 solutions
-
0
#include<bits/stdc++.h> using namespace std; const int N=350; vector<int> g[N]; bool st[N]; void dfs(int u) { st[u]=1; for(auto j:g[u]) { dfs(j); } } int main() { int n; cin>>n; for(int i=1;i<n;i++) { int x; cin>>x; g[x].push_back(i); } int m; cin>>m; while(m--) { int x; cin>>x; vector<int> v; for(int i=1;i<=x;i++) { int t; cin>>t; v.push_back(t); } int ans=-1; for(int i=0;i<n;i++) { memset(st,0,sizeof st); dfs(i);//去管理对应的人 int cnt=0; for(auto x:v) { if(st[x]==0) cnt++; } if(cnt==0) { ans=i; } } cout<<ans<<endl; } return 0; }
Information
- ID
- 2541
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 5
- Tags
- (None)
- # Submissions
- 12
- Accepted
- 4
- Uploaded By