154472025-02-19 16:34:20999Kaktuszgráfcpp17Elfogadva 50/5028ms652 KiB
// Source: https://usaco.guide/general/io

#include <bits/stdc++.h>
using namespace std;

#define int long long

const int inf=1e9;

int power(int a,int b){
    if(b==0)return 1;
    return power(a,b-1)*a;
}

vector<int> ans;

void bfs(int x, int n, vector<vector<int>>& v){
    queue<int> q;
    vector<int> dis(n);
    vector<int> type(n);
    for(int i = 0;i<v[x].size();i++){
        dis[v[x][i]]=1;
        q.push(v[x][i]);
        type[v[x][i]]=i;
    }
    int maxkor=0;
    while(!q.empty()){
        int u = q.front();
        q.pop();
        for(int i : v[u]){
            if(dis[i]==0&&i!=x){
                type[i]=type[u];
                dis[i]=dis[u]+1;
                q.push(i);
            }
            else if(i!=x&&type[i]!=type[u]){
                ans[x]=dis[i]+dis[u]+1;
                return;
            }
        }
    }
    ans[x]=0;
}

signed main() {
    int n,m;cin>>n>>m;
    vector<vector<int>> v(n);
    ans.assign(n,-1);
    for(int i = 0;i<m;i++){
        int a,b;cin>>a>>b;
        a--;b--;
        v[a].push_back(b);
        v[b].push_back(a);
    }
    for(int i = 0;i<n;i++){
        if(ans[i]==-1){
            bfs(i,n,v);
        }
    }
    sort(ans.rbegin(),ans.rend());
    cout<<ans[0]<<endl;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms500 KiB
2Elfogadva0/03ms316 KiB
3Elfogadva2/24ms316 KiB
4Elfogadva2/24ms504 KiB
5Elfogadva2/24ms432 KiB
6Elfogadva2/26ms316 KiB
7Elfogadva2/228ms484 KiB
8Elfogadva2/227ms488 KiB
9Elfogadva2/23ms508 KiB
10Elfogadva2/23ms512 KiB
11Elfogadva2/23ms316 KiB
12Elfogadva2/23ms484 KiB
13Elfogadva2/26ms484 KiB
14Elfogadva2/28ms488 KiB
15Elfogadva2/24ms532 KiB
16Elfogadva2/26ms492 KiB
17Elfogadva2/26ms572 KiB
18Elfogadva2/210ms492 KiB
19Elfogadva3/32ms652 KiB
20Elfogadva3/318ms564 KiB
21Elfogadva3/323ms480 KiB
22Elfogadva3/324ms480 KiB
23Elfogadva3/321ms316 KiB
24Elfogadva3/323ms476 KiB