254032026-02-19 20:05:53CzDaniKaktuszgráfcpp17Accepted 50/502ms672 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long

vector<vector<int>> adj;
vector<int> vis;
int maxi = 0;

void dfs(int v, int p) {
    for (int u : adj[v]) {
        if (u==p)continue;
        if (vis[u]>0) {
            maxi=max(maxi,vis[v]-vis[u]+1);
        } else {
            vis[u]=vis[v]+1;
            dfs(u, v);
        }
    }
}

signed main() {
	int n, m;
    cin >> n >> m;
    adj.resize(n+1);
    vis.resize(n+1);
    for (int i = 1; i <= m; i++) {
        int a, b;
        cin >> a >> b;
        adj[a].push_back(b);
        adj[b].push_back(a);
    }
    for (int i = 1; i <= n; i++) {
        if (vis[i]==0) {
            vis[i]=1;
            dfs(i, 0);
        }
    }
    cout<<maxi;
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms512 KiB
2Accepted0/01ms508 KiB
3Accepted2/22ms316 KiB
4Accepted2/22ms316 KiB
5Accepted2/22ms316 KiB
6Accepted2/22ms316 KiB
7Accepted2/22ms316 KiB
8Accepted2/21ms316 KiB
9Accepted2/22ms372 KiB
10Accepted2/22ms316 KiB
11Accepted2/22ms324 KiB
12Accepted2/22ms316 KiB
13Accepted2/22ms316 KiB
14Accepted2/22ms444 KiB
15Accepted2/22ms468 KiB
16Accepted2/22ms448 KiB
17Accepted2/22ms460 KiB
18Accepted2/22ms448 KiB
19Accepted3/32ms316 KiB
20Accepted3/32ms672 KiB
21Accepted3/32ms452 KiB
22Accepted3/32ms316 KiB
23Accepted3/32ms316 KiB
24Accepted3/32ms316 KiB