Cod sursa(job #1051671)

Utilizator FlameingoAiordachioaei Marius Flameingo Data 10 decembrie 2013 13:28:24
Problema Santa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <cstdio>
#include <vector>
#include <bitset>
#include <stack>
using namespace std;

const int NMAX = 45003;

vector <int> G[NMAX];
bitset <NMAX> viz;
stack <int> S;
int N, min_depth[NMAX], depth[NMAX];

void DFS_tree (const int &node) {

    viz[node] = 1;
    for (vector <int> :: iterator i = G[node].begin (); i != G[node].end (); ++i)
        if (!viz[*i]) {
            depth[*i] = min_depth[*i] = depth[node] + 1;
            S.push (*i);
            DFS_tree (*i);
            min_depth[node] = min (min_depth[*i], min_depth[node]);
            if (min_depth[*i] == depth[node])
        }
        else
            min_depth[node] = min (min_depth[node], depth[*i]);

}

int main () {

    freopen ("santa.in", "r", stdin);
    freopen ("santa.out", "w", stdout);
    int M, i, a, b, _start, start, dest;
    scanf ("%d%d", &N, &M);
    for (i = 1; i <= M; ++i) {
        scanf ("%d%d", &a, &b);
        G[a].push_back (b);
        G[b].push_back (a);
    }
    DFS_tree (1);

}