110302024-06-21 23:08:49CWMKaktuszgráfcpp17Wrong answer 18/504ms632 KiB
#include <iostream>
#include <vector>
#include <climits>
#include <algorithm>
using namespace std;

int n, m;
vector<vector<int>> graph;
vector<int> LNum;
vector<int> disc;
int lastDisc = 0;
void DFS(int vertexNum, int directParent) {
    disc[lastDisc] = vertexNum;
    LNum[vertexNum] = lastDisc;
    lastDisc++;
    for (auto neigh : graph[vertexNum]) {
        if (LNum[neigh] == INT_MAX) {
            DFS(neigh, vertexNum);
        }
    }
    for (auto neigh : graph[vertexNum]) {
        if (neigh != directParent) {
            LNum[vertexNum] = min(LNum[vertexNum], LNum[neigh]);
        }
    }
    return;
}

int main()
{
    cin >> n >> m;
    graph.resize(n);
    LNum.resize(n, INT_MAX);
    disc.resize(n, -1);
    for (size_t i = 0; i < m; i++)
    {
        int a, b;
        cin >> a >> b;
        a--; b--;
        graph[a].push_back(b);
        graph[b].push_back(a);
    }
    DFS(0, -1);
    vector<int> counts(n);
    for (size_t i = 0; i < LNum.size(); i++)
    {
        counts[LNum[i]]++;
    }
    int maxV = -1;
    for (size_t i = 0; i < counts.size(); i++)
    {
        maxV = max(maxV, counts[i]);
    }
    cout << maxV;
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base18/50
1Accepted0/03ms484 KiB
2Wrong answer0/03ms356 KiB
3Wrong answer0/23ms424 KiB
4Wrong answer0/23ms440 KiB
5Accepted2/23ms388 KiB
6Wrong answer0/24ms484 KiB
7Accepted2/24ms512 KiB
8Accepted2/24ms632 KiB
9Wrong answer0/24ms528 KiB
10Wrong answer0/24ms484 KiB
11Wrong answer0/24ms484 KiB
12Wrong answer0/23ms552 KiB
13Wrong answer0/23ms420 KiB
14Wrong answer0/24ms488 KiB
15Wrong answer0/24ms484 KiB
16Wrong answer0/24ms484 KiB
17Wrong answer0/23ms632 KiB
18Wrong answer0/24ms396 KiB
19Wrong answer0/34ms484 KiB
20Wrong answer0/34ms356 KiB
21Accepted3/33ms548 KiB
22Accepted3/33ms620 KiB
23Accepted3/34ms504 KiB
24Accepted3/34ms612 KiB