94332024-02-21 17:07:38PallanekPéterKaktuszgráfcpp17Hibás válasz 0/504ms4668 KiB
#include<bits/stdc++.h>
using namespace std;

vector<vector<int>> graf;
vector<int> szin;
vector<int> p;
int mx=0;

int hossz(int a, int v){
    int h;
    while(a!=v){
        a=p[a]; h++;
    }
    return h+1;
}

void mk(int u){
    if (szin[u]==-1){
        szin[u]=0;
        for(int v:graf[u]){
            if (szin[v]==1){mx=max(mx,hossz(v,u));}
            if (szin[v]==-1){
                mk(v);
                p[v]=u;
            }
        }
    }
    szin[u]=1;
}

int main(){
    int n,m; cin >> n >> m;
    graf.resize(n);
    szin.assign(n,-1);
    p.resize(n);
    for(int i=0;i<m;i++){
        int u,v; cin >> u >> v;
        graf[u-1].push_back(v-1);
        graf[v-1].push_back(u-1);
    }
    mk(1); cout << mx;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/50
1Hibás válasz0/03ms1872 KiB
2Hibás válasz0/03ms2152 KiB
3Hibás válasz0/23ms2504 KiB
4Hibás válasz0/23ms2840 KiB
5Hibás válasz0/23ms2884 KiB
6Hibás válasz0/23ms3100 KiB
7Hibás válasz0/23ms3460 KiB
8Hibás válasz0/23ms3260 KiB
9Hibás válasz0/23ms3276 KiB
10Hibás válasz0/23ms3588 KiB
11Hibás válasz0/24ms3740 KiB
12Hibás válasz0/23ms3696 KiB
13Hibás válasz0/23ms3760 KiB
14Hibás válasz0/23ms4156 KiB
15Hibás válasz0/23ms4096 KiB
16Hibás válasz0/23ms4144 KiB
17Hibás válasz0/23ms4280 KiB
18Hibás válasz0/24ms4208 KiB
19Hibás válasz0/34ms4416 KiB
20Hibás válasz0/33ms4400 KiB
21Hibás válasz0/33ms4556 KiB
22Hibás válasz0/33ms4548 KiB
23Hibás válasz0/33ms4668 KiB
24Hibás válasz0/33ms4556 KiB