Skip to content

Instantly share code, notes, and snippets.

@saisumit
Created February 10, 2017 05:15
Show Gist options
  • Select an option

  • Save saisumit/ab23067cdce57905a42ef92655ccc89a to your computer and use it in GitHub Desktop.

Select an option

Save saisumit/ab23067cdce57905a42ef92655ccc89a to your computer and use it in GitHub Desktop.
#include <bits/stdc++.h>
using namespace std;
#define REP(i, a, b) for (int i = a; i <= b; i++)
#define FOR(i, n) for (int i = 0; i < n; i++)
#define foreach(it, ar) for ( typeof(ar.begin()) it = ar.begin(); it != ar.end(); it++ )
#define fill(ar, val) memset(ar, val, sizeof(ar))
#define PI 3.1415926535897932385
#define uint64 unsigned long long
#define int64 long long
#define all(ar) ar.begin(), ar.end()
#define pb push_back
#define ff first
#define ss second
#define bit(n) (1<<(n))
#define Last(i) ( (i) & (-i) )
#define sq(x) ((x) * (x))
#define INF INT_MAX
#define maxN 1000000
#define pb push_back
typedef pair<int, int> pii;
typedef vector<pii> vpii;
typedef vector<int> vi;
typedef vector< vi > vvi ;
typedef long long ll ;
vector<int>visit(maxN, -1 ) ;
vvi g(maxN);
vi val(maxN,-1);
bool flg = false;
void dfs(int vtx , int po ,int idx )
{
// cout<<vtx<<" " <<idx <<endl;
visit[vtx] = idx;
if(po==0)return;
for( int i = 0 ; i < g[vtx].size() ; i ++ )
{
int ch = g[vtx][i];
if( visit[ch] == - 1 )
dfs( ch , po-1 , idx );
else if( visit[ch] != idx )
flg = true ;
}
}
int main()
{
/*freopen("a.in", "r", stdin);
freopen("a.out", "w", stdout);*/
ios::sync_with_stdio(0);
cin.tie(0);
int t;
cin>>t;
while(t--)
{
int n , m , k ;
cin>> n >> m >> k ;
int a, b;
for( int i = 0 ; i < m ; i ++)
{
cin>>a>>b;
--a;
--b;
g[a].pb(b);
g[b].pb(a);
}
for( int i = 0 ; i < k ; i ++ )
{
cin>>a>>b;
--a;
val[a] = b;
}
for(int i = 0 ; i < n ; i ++)
if( val[i]!=-1 )
{
if(visit[i]!=-1)
flg = true ;
else dfs(i,val[i],i);
}
/* FOR(i,n)
if(visit[i] == -1 )flg = true;*/
if(flg)cout<<"No"<<endl;
else cout<<"Yes"<<endl;
FOR(i,n)
{g[i].resize(0);
visit[i] = -1;
val[ i ] = -1; }
flg = false;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment