36232023-03-01 11:48:33kdbForgalmas utakcpp17Időlimit túllépés 45/1001.082s5520 KiB
#include <algorithm>
#include <climits>
#include <iostream>
#include <vector>

using namespace std;

struct edge {
    int u, v;

    bool operator ==(edge const& rhs) const {
        return (u == rhs.u && v == rhs.v) || (u == rhs.v && v == rhs.u);
    }
};

vector<vector<int>> graph;
vector<int> t;
vector<int> l;
vector<bool> done;
int tm;
int bs;
edge removed;

void dfs(int const cur, int const par) {
    done[cur] = true;

    t[cur] = tm;
    tm++;
    l[cur] = t[cur];

    for (int const& neigh : graph[cur]) {
        if (removed == edge{ cur, neigh })
            continue;

        if (done[neigh]) {
            if (neigh != par)
                l[cur] = min(l[cur], t[neigh]);
            continue;
        }

        dfs(neigh, cur);

        l[cur] = min(l[cur], l[neigh]);
    }

    if (l[cur] == t[cur] && par != -1)
        bs++;
}

void busy() {
    for (int i = 0; i < graph.size(); i++) {
        t[i] = -1;
        l[i] = INT_MAX / 2;
        done[i] = false;
    }
    tm = 0;
    bs = 0;

    for (int i = 0; i < graph.size(); i++)
        if (!done[i])
            dfs(i, -1);

    /*for (int i = 0; i < graph.size(); i++) {
        cout << t[i] << " " << l[i] << "\n";
    }*/

    cout << bs << "\n";
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);

    int n, m;
    cin >> n >> m;

    graph.resize(n);
    t.resize(n);
    l.resize(n);
    done.resize(n);
    vector<edge> edges(m);

    for (auto& e : edges) {
        cin >> e.u >> e.v;
        e.u--; e.v--;

        graph[e.u].push_back(e.v);
        graph[e.v].push_back(e.u);
    }

    for (auto& e : edges) {
        removed = e;

        busy();
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1828 KiB
2Elfogadva3ms2020 KiB
subtask221/21
3Elfogadva4ms2248 KiB
4Elfogadva4ms2352 KiB
5Elfogadva4ms2556 KiB
6Elfogadva4ms2776 KiB
7Elfogadva4ms2988 KiB
8Elfogadva4ms3196 KiB
9Elfogadva4ms3284 KiB
subtask324/24
10Elfogadva3ms3576 KiB
11Elfogadva14ms3836 KiB
12Elfogadva41ms4048 KiB
13Elfogadva71ms4060 KiB
14Elfogadva104ms4228 KiB
15Elfogadva104ms4328 KiB
16Elfogadva105ms4624 KiB
17Elfogadva104ms4612 KiB
18Elfogadva104ms4736 KiB
subtask40/20
19Elfogadva97ms5220 KiB
20Elfogadva388ms5156 KiB
21Időlimit túllépés1.06s4200 KiB
22Időlimit túllépés1.062s4356 KiB
23Időlimit túllépés1.069s4612 KiB
24Időlimit túllépés1.065s4728 KiB
25Időlimit túllépés1.065s4824 KiB
26Időlimit túllépés1.052s4700 KiB
27Időlimit túllépés1.082s4776 KiB
subtask50/35
28Elfogadva14ms5064 KiB
29Elfogadva404ms5520 KiB
30Időlimit túllépés1.06s4440 KiB
31Időlimit túllépés1.044s4660 KiB
32Időlimit túllépés1.074s4716 KiB
33Időlimit túllépés1.06s4832 KiB
34Időlimit túllépés1.065s4892 KiB
35Időlimit túllépés1.077s4952 KiB
36Időlimit túllépés1.052s4840 KiB