/// Raihan Ruhin /// CSE, Jahangirnagar University. /// Dhaka-Bangladesh. /// id: raihanruhin (topcoder / codeforces / codechef / uva / uvalive / spoj), 3235 (lightoj) /// mail: raihanruhin@ (yahoo / gmail / facebook) /// blog: ruhinraihan.blogspot.com #include<bits/stdc++.h> using namespace std; #define SET(a) memset(a,-1,sizeof(a)) #define CLR(a) memset(a,0,sizeof(a)) #define PI acos(-1.0) #define MOD 1000000007 #define MX 100010 vector<int>adj[22]; int dist[22]; void bfs(int source, int dest) { SET(dist); queue<int>Q; Q.push(source); dist[source]=0; while(!Q.empty()) { int u = Q.front(); for(int i=0;i<adj[u].size();i++) { int v = adj[u][i]; if(dist[v]==-1) { dist[v]=dist[u]+1; Q.push(v); } } Q.pop(); } return; } int main() { ios_base::sync_with_stdio(0);cin.tie(0); int tc, kk=1, n, v, a, b, x; string s; char ch; while(cin>>x) { for(int i=0;i<x;i++) { cin>>v; adj[1].push_back(v); adj[v].push_back(1); } for(int i=2;i<20;i++) { cin>>x; for(int j=0;j<x;j++) { cin>>v; adj[i].push_back(v); adj[v].push_back(i); } } cout<<"Test Set #"<<kk++<<"\n"; cin>>n; for(int i=0;i<n;i++) { cin>>a>>b; bfs(a, b); //(source, destination) cout<<setw(2)<<a<<" to "<<setw(2)<<b<<": "<<dist[b]<<"\n"; } cout<<"\n"; for(int i=1;i<=20;i++) adj[i].clear(); } return 0; }
Friday, 18 September 2015
UVA - 567 Risk (UVALive - 5498, ZOJ - 1221, POJ - 1603, Regionals 1997 >> North America - South Central USA)
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment