fork download
  1. /*
  2. AUTHOR : Chandan Agrawal
  3. College : Poornima College of Engg. jaipur, Raj
  4. Mail : chandanagrawal23@gmail.com
  5. */
  6.  
  7. #include<bits/stdc++.h>
  8. #include<stdio.h>
  9. using namespace std;
  10.  
  11. #define fastio ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
  12. #define MAX 100050
  13.  
  14. #define ll long long
  15. #define ld long double
  16. #define lli long long int
  17.  
  18. #define pb emplace_back
  19. #define INF 1000000000
  20. #define mod 1000000007
  21.  
  22. // trignometric function always give value in Radians only
  23. #define PI acos(-1) //3.1415926535897932384626433832795028
  24. #define dsin(degree) sin(degree*(PI/180.0))
  25. #define dcos(degree) cos(degree*(PI/180.0))
  26. #define dtan(degree) tan(degree*(PI/180.0))
  27.  
  28. #define rsin(radian) sin(radian)
  29. #define rcos(radian) cos(radian)
  30. #define rtan(radian) tan(radian)
  31.  
  32. #define loop(i,n) for (lli i = 0; i < n; i++)
  33. #define loopitr(xt,vec) for (auto xt : vec)
  34. #define FOR(i,a,b) for (lli i = a; i < b; i+=1)
  35. #define loop_rev(i,n) for (lli i = n-1; i >= 0; i--)
  36. #define FOR_REV(i,a,b) for (lli i = a; i >= b; i--)
  37. #define itr :: iterator it
  38. #define WL(t) while(t --)
  39.  
  40. #define all(v) v.begin(),v.end()
  41. #define sz(x) int(x.size())
  42. #define F first
  43. #define S second
  44.  
  45. #define mii map<lli,lli>
  46. #define vi vector<lli>
  47. #define seti set<lli>
  48. #define pii pair<lli,lli>
  49.  
  50. #define gcd(a,b) __gcd((a),(b))
  51. #define lcm(a,b) (a/gcd(a,b))*b
  52. #define abs(x) ((x < 0)?-(x):x)
  53.  
  54. template <typename T>
  55. void print(T x){cout<<x<<endl;}
  56. template <typename T1, typename T2>
  57. void print2(T1 x,T2 y){cout<<x<<" "<<y<<endl;}
  58. template <typename T1, typename T2,typename T3>
  59. void print3(T1 x, T2 y,T3 z){cout<<x<<" "<<y<<" "<<z<<endl;}
  60.  
  61. #define scanarr(a,n) for(lli i=0;i<n;i++) cin>>a[i];
  62. #define scanvector(a,n) for(lli i=0;i<n;i++){ lli x ; cin>>x; a.pb(x);}
  63.  
  64. #define printarr(a,n) for(lli i=0;i<n;i++) cout<<a[i]<<" "; cout<<endl;
  65. #define printvector(vec) for(auto xt : vec) cout<<xt<<" "; cout<<"\n";
  66. #define printset(st) for(auto xt : st) cout<<xt<<" "; cout<<"\n";
  67.  
  68. #define FD(N) fixed<<setprecision(N)
  69.  
  70. #define endl '\n'
  71.  
  72. #define deb(x) cout<<#x<<" "<<x<<endl;
  73.  
  74. // chandan1,2
  75. void chandan1(){int y=1;return;}
  76. void chandan2(){
  77. loop(i,10){
  78. lli x=1;
  79. }
  80. return(chandan1());
  81. }
  82.  
  83.  
  84.  
  85.  
  86. void bfs(vi adj[],bool *vis , lli *dist, lli s){
  87. queue<lli>q;
  88. q.push(s);
  89. vis[s]=1;
  90. dist[s]=0;
  91. while(q.empty()==false){
  92. lli x = q.front();
  93. q.pop();
  94. for(auto xt : adj[x])
  95. {
  96. if(!vis[xt])
  97. {
  98. if(dist[xt]==0)
  99. dist[xt] = dist[x]+1;
  100. else
  101. dist[xt] = min(dist[xt] , dist[x]+1);
  102. vis[xt]=1;
  103. q.push(xt);
  104. }
  105. }
  106. }
  107.  
  108. }
  109.  
  110. int main(){
  111. fastio
  112. lli t=1;
  113. //cin>>t;
  114. chandan2();
  115. while(t--) {
  116. lli v,e,source,destin;
  117. cin>>v>>e;
  118. vi adj[v+1];
  119. lli dist[v+1]={0};
  120. loop(i,e){
  121. lli x,y;
  122. cin>>x>>y;
  123. adj[x].pb(y);
  124. adj[y].pb(x);
  125. }
  126. lli k;
  127. cin>>k;
  128. lli a[k];
  129. scanarr(a,k);
  130. loop(i,k){
  131. source = a[i];
  132. bool vis[v+1]={0};
  133. bfs(adj,vis,dist,source);
  134. }
  135. lli maxi =-1;
  136. lli ans;
  137. for(lli i=1;i<=v;i++){
  138. if(maxi < dist[i]){
  139. maxi = dist[i];
  140. ans = i;
  141. }
  142. }
  143. print(maxi);
  144. print(ans);
  145. }
  146. return 0;
  147. }
Success #stdin #stdout 0s 4292KB
stdin
6 6
1 2
2 6
1 5
5 6
3 5
4 5
2
1 2
stdout
2
3