Submission #551821

#TimeUsernameProblemLanguageResultExecution timeMemory
551821kshitij_sodaniJail (JOI22_jail)C++14
21 / 100
5063 ms5204 KiB
#include <bits/stdc++.h> using namespace std; typedef long long llo; #define a first #define b second #define pb push_back #define endl '\n' const llo mod=1e9+7; int q; int ee; vector<int> adj[200001]; int cc[200001]; int dd[200001]; int vis[200001]; vector<int> ss; vector<int> tt; vector<int> pre[501]; map<int,int> ind[501]; void dfs(int no,int par=-1){ ss.pb(no); if(ee==no){ tt=ss; } for(auto j:adj[no]){ if(j!=par){ dfs(j,no); } } ss.pop_back(); } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cin>>q; while(q--){ int n; cin>>n; for(int i=0;i<n;i++){ adj[i].clear(); } for(int i=0;i<n-1;i++){ int aa,bb; cin>>aa>>bb; aa--; bb--; adj[aa].pb(bb); adj[bb].pb(aa); } int m; cin>>m; for(int i=0;i<m;i++){ cin>>cc[i]>>dd[i]; ind[i].clear(); cc[i]--; dd[i]--; ee=dd[i]; dfs(cc[i]); pre[i]=tt; for(auto j:tt){ ind[i][j]++; } } string ans="No"; vector<int> ss; for(int i=0;i<m;i++){ ss.pb(i); } while(true){ for(int j=0;j<n;j++){ vis[j]=0; } for(int j=0;j<m;j++){ vis[cc[j]]=1; } int ok=0; for(auto j:ss){ vis[cc[j]]=0; for(auto i:pre[j]){ if(vis[i]==1){ ok++; } } vis[dd[j]]=1; } if(ok==0){ ans="Yes"; } if(next_permutation(ss.begin(),ss.end())){ } else{ break; } } cout<<ans<<endl; /*for(int i=0;i<m;i++){ for(int j=0;j<m;j++){ int co=0; if(i==j){ continue; } if(ind[j].find(cc[i])!=ind[j].end()){ if(ind[j].find(dd[i])!=ind[j].end()){ ans="No"; } } for(auto jj:pre[j]){ if(ind[i].find(dd[j])) } if(ind[j].find(dd[i])!=ind[j].end()){ if(ind[i].find(pre[j].back())!=ind[i].end()){ ans="No"; break; } } } }*/ // cout<<ans<<endl; } 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...