176152025-08-09 16:33:26BucsMateKaktuszgráfcpp17Accepted 50/502ms548 KiB
#include <iostream>
#include <vector>

using namespace std;

int maxLength = 0;

vector<vector<int>> adj;
vector<int> depth;

void dfs(int currNode)
{
    for(int newNode : adj[currNode]){
        if(depth[newNode] != -1){
            maxLength = max(maxLength, depth[currNode] - depth[newNode] + 1);
        }
        else{
            depth[newNode] = depth[currNode] + 1;
            dfs(newNode);
        }
    }
}

int main()
{
    int N, M;
    cin >> N >> M;

    adj.resize(N+1);
    depth.assign(N+1, -1);

    int a, b;
    for(int i = 0; i < M; ++i){
        cin >> a >> b;
        adj[a].push_back(b);
        adj[b].push_back(a);
    }
    depth[1] = 0;
    dfs(1);
    cout << maxLength;
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms316 KiB
2Accepted0/01ms316 KiB
3Accepted2/21ms316 KiB
4Accepted2/22ms316 KiB
5Accepted2/21ms316 KiB
6Accepted2/22ms316 KiB
7Accepted2/21ms508 KiB
8Accepted2/21ms316 KiB
9Accepted2/22ms316 KiB
10Accepted2/22ms316 KiB
11Accepted2/22ms316 KiB
12Accepted2/22ms316 KiB
13Accepted2/22ms500 KiB
14Accepted2/22ms548 KiB
15Accepted2/22ms316 KiB
16Accepted2/22ms500 KiB
17Accepted2/22ms316 KiB
18Accepted2/22ms396 KiB
19Accepted3/32ms316 KiB
20Accepted3/31ms316 KiB
21Accepted3/32ms316 KiB
22Accepted3/32ms316 KiB
23Accepted3/32ms316 KiB
24Accepted3/32ms432 KiB