Submission #631335

#TimeUsernameProblemLanguageResultExecution timeMemory
631335mdn2002Jail (JOI22_jail)C++14
21 / 100
5093 ms948 KiB
#include<bits/stdc++.h> using namespace std; int n , m , is [502] , st [502] , fn [502] , ff; vector < int > gr [502] , v , pth; void go ( int x , int p , int pr ) { pth . push_back ( x ); if ( fn [pr] == x ) { for ( auto u : pth ) { if ( is [u] == 1 && u != st [pr] ) ff = 1; } is [ st [pr] ] = 0; is [ fn [pr] ] = 1; } for ( auto u : gr [x] ) { if ( u == p ) continue; go ( u , x , pr ); } pth . pop_back (); } bool ck ( ) { ff = 0; for ( int i = 1 ; i <= n ; i ++ ) is [i] = 0; for ( int i = 1 ; i <= m ; i ++ ) is [ st [i] ] = 1; for ( auto x : v ) { go ( st [x] , 0 , x ); } if ( ff ) return 0; return 1; } int main() { int q; cin >> q; while ( q -- ) { cin >> n; for ( int i = 1 ; i <= n ; i ++ ) { gr [i] . clear (); is [i] = 0; } for ( int i = 0 ; i < n - 1 ; i ++ ) { int x , y; cin >> x >> y; gr [x] . push_back ( y ); gr [y] . push_back ( x ); } cin >> m; v . clear (); for ( int i = 1 ; i <= m ; i ++ ) { v . push_back ( i ); cin >> st [i] >> fn [i]; } int f = 0; do { f = max ( f , ( int ) ck () ); } while ( next_permutation( v . begin () , v . end () ) ); if ( f ) cout << "Yes" << endl; else cout << "No" << endl; } }
#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...