제출 #530929

#제출 시각아이디문제언어결과실행 시간메모리
530929SlavitaCijanobakterije (COCI21_cijanobakterije)C++14
70 / 70
50 ms13644 KiB
#include <bits/stdc++.h>
//#include <ext/pb_ds/assoc_container.hpp>
//#include <ext/pb_ds/tree_policy.hpp>
#define ve vector<int>
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define pi pair<int,int>
#define all(v) v.begin(),v.end()
#define si(v) (int)v.size()
#define en '\n'
#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>
#define ordered_muiltiset tree<int, null_type,less_equal<>, rb_tree_tag,tree_order_statistics_node_update>
//#define int long long
using namespace std;
//using namespace __gnu_pbds;
typedef long long ll;
typedef unsigned long long ull;

const int N = 1e5 + 228;
const int big = 1e9;
//ordered_set os; // os.order_of_key(4), (*os.find_by_order(5))
int n, m, ans, k, gv, mxg;
bool mrk[N];
ve g[N];

void dfs(int v, int pr, int gl, bool mark){
    if (mark) mrk[v] = 1;
    if (gl > mxg){
        mxg = gl;
        gv = v;
    }

    for (int i = 0; i < si(g[v]); i++){
        int u = g[v][i];
        if (pr == u) continue;
        dfs(u, v, gl + 1, mark);
    }
}

//#undef int
int main(){
    //#define int long long
    iostream::sync_with_stdio(false); cin.tie(0); ios_base::sync_with_stdio(false); cout.tie(0);
    //freopen("input.txt","r",stdin);
    //freopen("output.txt","w",stdout);
    cin >> n >> m;
    for (int i = 1; i <= m; i++){
        int a, b;
        cin >> a >> b;
        g[a].pb(b);
        g[b].pb(a);
    }

    for (int i = 1; i <= n; i++){
        if (!mrk[i]){
            mxg = -1;
            gv = 0;
            dfs(i, -1, 0, 1);

            int root = gv;
            mxg = -1;
            gv = 0;
            dfs(root, -1, 0, 0);
            ans += mxg + 1;
        }
    }
    cout << ans;
    return 0;
}
/*
*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...