82942024-01-14 11:32:24zsomborMaximális kaktusz (45 pont)cpp17Hibás válasz 9/4554ms13320 KiB
#include <iostream>
#include <vector>
using namespace std;

int n, m, a, b, ans = 0;
vector <vector <int>> g(1e5);
vector <int> p(1e5, 0);
vector <bool> fa(1e5, true);
vector <bool> szabad;

void dfs1(int x) {
    for (int i : g[x]) {
        if (i == p[x]) continue;
        if (p[i]) {
            a = x;
            if (fa[x]) while (a != p[i]) { fa[a] = false; a = p[a]; }
            continue;
        }
        p[i] = x;
        dfs1(i);
    }
}

void dfs2(int x) {
    fa[x] = false;
    int c = 0;
    for (int i : g[x]) {
        if (!fa[i]) continue;
        p[i] = x;
        dfs2(i);
        if (szabad[i]) c++;
    }
    if (!szabad[x]) return;
    if (c >= 2) {
        ans++;
        szabad[x] = false;
    }
    if (c == 1 && p[x] > 0) {
        ans++;
        szabad[x] = false;
        szabad[p[x]] = false;
    }
}

int main()
{
    cin >> n >> m;
    for (int i = 0; i < m; i++) {
        cin >> a >> b;
        g[a].push_back(b);
        g[b].push_back(a);
    }
    p[1] = -1;
    dfs1(1);
    fill(p.begin(), p.end(), 0);
    szabad = fa;
    for (int i = 1; i <= n; i++) {
        if (!fa[i]) continue;
        p[i] = -1;
        dfs2(i);
    }
    cout << ans;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base9/45
1Elfogadva0/06ms7260 KiB
2Hibás válasz0/04ms7600 KiB
3Elfogadva1/14ms7784 KiB
4Elfogadva1/14ms8004 KiB
5Elfogadva1/16ms8076 KiB
6Elfogadva2/24ms8420 KiB
7Hibás válasz0/24ms8528 KiB
8Elfogadva2/26ms8720 KiB
9Hibás válasz0/14ms8684 KiB
10Elfogadva1/14ms8720 KiB
11Hibás válasz0/14ms8840 KiB
12Hibás válasz0/14ms8872 KiB
13Hibás válasz0/14ms8876 KiB
14Hibás válasz0/14ms8948 KiB
15Hibás válasz0/16ms8924 KiB
16Hibás válasz0/16ms8820 KiB
17Hibás válasz0/16ms8944 KiB
18Hibás válasz0/150ms12232 KiB
19Hibás válasz0/146ms12508 KiB
20Hibás válasz0/152ms12460 KiB
21Hibás válasz0/154ms12536 KiB
22Hibás válasz0/239ms12964 KiB
23Hibás válasz0/239ms12992 KiB
24Hibás válasz0/239ms12836 KiB
25Hibás válasz0/239ms13052 KiB
26Elfogadva1/14ms9420 KiB
27Hibás válasz0/14ms9416 KiB
28Hibás válasz0/16ms9560 KiB
29Hibás válasz0/148ms12860 KiB
30Hibás válasz0/148ms12936 KiB
31Hibás válasz0/145ms12868 KiB
32Hibás válasz0/146ms13060 KiB
33Hibás válasz0/248ms13036 KiB
34Hibás válasz0/248ms13128 KiB
35Hibás válasz0/246ms13320 KiB
36Hibás válasz0/243ms13296 KiB