Cod sursa(job #418738)

Utilizator dead_knightTitei Paul Adrian dead_knight Data 16 martie 2010 12:27:00
Problema Santa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include<fstream>
#include<cstdio>
#include<vector>
#define MAX 45002
#define pb push_back
using namespace std;

vector<int> G[MAX];
int n, S, Q, E, x[MAX], v[MAX], eset[MAX];

void citire()
{
    int i,m;
    ifstream fin("santa.in");
    fin>>n>>m;
    for(i=1;i<=m;i++)
    {
        int x, y;
        fin>>x>>y;
        G[x].pb(y);
        G[y].pb(x);
    }
    fin>>S>>E>>Q;
}

void faceva(int pas)
{
    for(int i=1; i<=pas;i++)
        eset[x[i]]=1;
}

void df(int k, int pas)
{
    v[k]=1;
    x[pas]=k;
    if(k==E)
        faceva(pas);
    else
    {
        int i;
        for(i=0;i<G[k].size();i++)
            if(v[G[k][i]]==0)
                df(G[k][i], pas+1);
    }
    v[k]=0;
}

void afis()
{
    int i;
    for(i=1;i<=n;i++)
        printf("%d ", eset[i] );
}

int main()
{
    freopen("santa.out","w",stdout);
    citire();
    df(S, 1);
    afis();
    return 0;
}