fork(1) download
  1. #include <bits/stdc++.h>
  2. #include <iostream>
  3. #define MOD 1000000007//10e9+7;
  4. #define MAX 1000003
  5. #define T() int t; scanf("%d",&t);while(t--)
  6. #define FOR(i,a,b) for(int (i) = (a); (i) < (b); (i)++)
  7. #define RFOR(i,a,b) for(int (i) = (a)-1; (i) >= (b); (i)--)
  8. #define CLEAR(a) memset((a),0,sizeof(a))
  9. #define all(v) v.begin(), v.end()
  10. #define si(x) scanf("%d",&x)
  11. #define sll(x) scanf("%lld",&x)
  12. #define pi(x) printf("%d\n",x)
  13. #define pll(x) printf("%lld\n",x)
  14. #define fi first
  15. #define se second
  16. #define pb push_back
  17. #define mp make_pair
  18.  
  19. using namespace std;
  20.  
  21. typedef long long int ll;
  22. typedef vector<int> vi;
  23. typedef vector<ll> vl;
  24. typedef pair<int,int> pii;
  25. typedef pair<ll,ll> pll;
  26.  
  27. int max(int a,int b)
  28. {
  29. if(a>b) return a;
  30. else
  31. return b;
  32. }
  33. int main()
  34. {
  35. int n,m,u,v;
  36. si(n);si(m);
  37. vi g[n+1];
  38. FOR(i,0,m)
  39. {
  40. si(u);si(v);
  41. g[u].pb(v);
  42. g[v].pb(u);
  43. }
  44. bool visited[n+1];
  45. memset(visited,false,sizeof(visited));
  46. stack<int> s;
  47. int ans,count,k;
  48. ans=0;
  49. FOR(i,1,n+1)
  50. {
  51. count=0;
  52. if(!visited[i])
  53. {
  54. s.push(i);
  55. while(!s.empty())
  56. {
  57. k = s.top();
  58. s.pop();
  59. for(int j=0;j<g[k].size();j++)
  60. {
  61. if(!visited[g[k][j]])
  62. {
  63. count++;
  64. s.push(g[k][j]);
  65. visited[g[k][j]]=true;
  66. }
  67. }
  68. }
  69. ans = max(ans,count);
  70.  
  71. }
  72. }
  73. pi(ans);
  74. return 0;
  75. }
Success #stdin #stdout 0s 16064KB
stdin
6 3
1 2
2 3
4 5
stdout
3