Cod sursa(job #1044300)

Utilizator thewildnathNathan Wildenberg thewildnath Data 29 noiembrie 2013 16:29:46
Problema A+B Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.23 kb
/*#include<stdio.h>
#include<vector>
#include<queue>
using namespace std;

#define NMAX 100005

struct drum
{
    int x,c;
};

int n,m,f[NMAX];
bool bun[NMAX],viz[NMAX];
drum aux;

vector<drum> v[NMAX];
queue<int>q;


bool bfs(int x)
{
    int i,ok=0;
    viz[x]=1;
    for(i=0;i<v[x].size();++i)
    {
        if(!viz[v[x][i].x])
            if(bfs(v[x][i].x))
                ok=1;
    }
    if(ok==1 || bun[x])
        return 1;

    f[x]=-1;

    return 0;
}

int main()
{
    freopen("posta2.in","r",stdin);
    freopen("posta2.out","w",stdout);
    int i,x,y;
    scanf("%d%d",&n,&m);
    for(i=1;i<n;++i)
    {
        scanf("%d%d%d",&x,&y,&aux.c);
        aux.x=y;
        v[x].push_back(aux);
        aux.x=x;
        v[y].push_back(aux);
    }
    for(i=1;i<=n;++i)
        scanf("%d",&f[i]);
    for(i=1;i<=m;++i)
    {
        scanf("%d",&x);
        bun[x]=1;
    }

    bfs(bun[1]);

    for(i=1;i<=n;++i)
        if(f[i]!=-1)
            printf("%d ",i);



    return 0;
}*/


/*void bfs()
{
    int x=bun[1],i;
    q.push(x);
    while(!q.empty())
    {
        x=q.front();
        q.pop();
        for(i=0;i<v[i].size();++i)
        {

        }
    }
}*/