Problem p02573 (C++) — buggy submission, verdict: Time Limit Exceeded

// #include <bits/stdc++.h>
// #define ll long long int
// #define vi vector<ll>
// #define vvi vector<vector<ll>>
// #define pii pair<ll, ll>
// #define pb push_back
// #define rep0(i, n) for(ll i = 0;i<n;i++)
// #define rep1(i, n) for(ll i = 1;i<n;i++)
// #define all(v) v.begin(),v.end()
// #define fast
//     ios_base::sync_with_stdio(false);
//     cin.tie(NULL);
//     cout.tie(NULL);
// using namespace std;
// const int N = 2e5 + 5;

// vector<int> vis(N, 0);
// vector<int> adj[N];
// int mx = 0;

// int dfs(int u){
//     int ans = 0;
//     if(!vis[u]){
//         vis[u] = true;
//         ans++;
//         for(auto v: adj[u]){
//             ans += dfs(v);
//         }
//     }
//     return ans;
// }

// void solve(){
//     int n, m;
//     cin >> n >> m;
//     for(int i=0; i<m; i++){
//         int x, y;
//         cin >> x >> y;
//         x--;y--;
//         adj[x].push_back(y);
//         adj[y].push_back(x);
//     }
//     for(int i=0; i<n; i++){
//         if(!vis[i]){
//             mx = max(mx, dfs(i));
//         }
//     }
//     cout << mx;
// }

// int main()
// {
//     fast;
//     solve();
//     // int t;
//     // cin >> t;
//     // while(t--){
//     //     solve();
//     // }
//     return 0;
// }
#include <bits/stdc++.h>
#define ll long long int
#define vi vector<ll>
#define vvi vector<vector<ll>>
#define pii pair<ll, ll>
#define pb push_back
#define rep0(i, n) for (ll i = 0; i < n; i++)
#define rep1(i, n) for (ll i = 1; i < n; i++)
#define all(v) v.begin(), v.end()
#define fast                                                                   \\
  ios_base::sync_with_stdio(false);                                            \\
  cin.tie(NULL);                                                               \\
  cout.tie(NULL);
using namespace std;
const int N = 1e5 + 5;

vector<int> parent;

int find(int x) {
  if (parent[x] == x) {
    return x;
  } else {
    int a = find(parent[x]);
    parent[x] = a;
    return a;
  }
}

void connect(int x, int y) { parent[find(x)] = find(y); }

void solve() {
  int n, m;
  cin >> n >> m;
  parent.resize(n);
  for (int i = 0; i < n; i++) {
    parent[i] = i;
  }
  for (int i = 0; i < m; i++) {
    int x, y;
    cin >> x >> y;
    x--;
    y--;
    connect(x, y);
  }
  vector<int> temp(n, 0);
  for (int i = 0; i < n; i++) {
    temp[find(parent[i])]++;
  }
  cout << *max_element(temp.begin(), temp.end());
}

int main() {
  fast;
  solve();
  // int t;
  // cin >> t;
  // while(t--){
  //     solve();
  // }
  return 0;
}


Error: TLE

Fixed submission:

// #include <bits/stdc++.h>
// #define ll long long int
// #define vi vector<ll>
// #define vvi vector<vector<ll>>
// #define pii pair<ll, ll>
// #define pb push_back
// #define rep0(i, n) for(ll i = 0;i<n;i++)
// #define rep1(i, n) for(ll i = 1;i<n;i++)
// #define all(v) v.begin(),v.end()
// #define fast
//     ios_base::sync_with_stdio(false);
//     cin.tie(NULL);
//     cout.tie(NULL);
// using namespace std;
// const int N = 2e5 + 5;

// vector<int> vis(N, 0);
// vector<int> adj[N];
// int mx = 0;

// int dfs(int u){
//     int ans = 0;
//     if(!vis[u]){
//         vis[u] = true;
//         ans++;
//         for(auto v: adj[u]){
//             ans += dfs(v);
//         }
//     }
//     return ans;
// }

// void solve(){
//     int n, m;
//     cin >> n >> m;
//     for(int i=0; i<m; i++){
//         int x, y;
//         cin >> x >> y;
//         x--;y--;
//         adj[x].push_back(y);
//         adj[y].push_back(x);
//     }
//     for(int i=0; i<n; i++){
//         if(!vis[i]){
//             mx = max(mx, dfs(i));
//         }
//     }
//     cout << mx;
// }

// int main()
// {
//     fast;
//     solve();
//     // int t;
//     // cin >> t;
//     // while(t--){
//     //     solve();
//     // }
//     return 0;
// }
#include <bits/stdc++.h>
#define ll long long int
#define vi vector<ll>
#define vvi vector<vector<ll>>
#define pii pair<ll, ll>
#define pb push_back
#define rep0(i, n) for (ll i = 0; i < n; i++)
#define rep1(i, n) for (ll i = 1; i < n; i++)
#define all(v) v.begin(), v.end()
#define fast                                                                   \\
  ios_base::sync_with_stdio(false);                                            \\
  cin.tie(NULL);                                                               \\
  cout.tie(NULL);
using namespace std;
const int N = 1e5 + 5;

vector<int> parent;

int find(int x) {
  if (parent[x] == x) {
    return x;
  } else {
    return (find(parent[x]));
  }
}

void connect(int x, int y) {
  int a = find(x);
  int b = find(y);
  if (a != b) {
    parent[find(b)] = find(a);
  }
}

void solve() {
  int n, m;
  cin >> n >> m;
  parent.resize(n);
  for (int i = 0; i < n; i++) {
    parent[i] = i;
  }
  for (int i = 0; i < m; i++) {
    int x, y;
    cin >> x >> y;
    x--;
    y--;
    connect(x, y);
  }
  vector<int> temp(n, 0);
  for (int i = 0; i < n; i++) {
    temp[find(parent[i])]++;
  }
  cout << *max_element(temp.begin(), temp.end());
}

int main() {
  fast;
  solve();
  // int t;
  // cin >> t;
  // while(t--){
  //     solve();
  // }
  return 0;
}