Submission #757595


Source Code Expand

#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
#define rep(i,n) for(int (i)=0;(i)<(int)(n);++(i))
#define each(itr,c) for(__typeof(c.begin()) itr=c.begin(); itr!=c.end(); ++itr)
#define all(x) (x).begin(),(x).end()
#define mp make_pair
#define pb push_back
#define fi first
#define se second

int n,x;
int h[100];
vector<int> G[100];

//その頂点を訪れるべきかどうか
int vis[100]={0};

int dfs(int now, int p)
{
    int ret=0;
    if(h[now]) ret=1;

    rep(i,G[now].size())
    {
        int nx=G[now][i];
        if(nx==p) continue;

        ret|=dfs(nx,now);
    }

    return vis[now]=ret;
}

int main()
{
    cin >>n >>x;
    --x;
    rep(i,n) cin >>h[i];
    rep(i,n-1)
    {
        int a,b;
        cin >>a >>b;
        --a;
        --b;
        G[a].pb(b);
        G[b].pb(a);
    }

    int tmp=dfs(x,x);
    //rep(i,n) printf("vis %d = %d\n",i+1,vis[i]);

    int ans=0;
    int v[100]={0};

    queue<int> que;
    que.push(x);
    v[x]=1;
    while(!que.empty())
    {
        int p=que.front();
        que.pop();
        rep(i,G[p].size())
        {
            int nx=G[p][i];
            if(nx==p) continue;

            if(vis[nx] && !v[nx])
            {
                v[nx]=1;
                que.push(nx);
                ans+=2;
            }
        }
    }

    cout << ans << endl;
    return 0;
}

Submission Info

Submission Time
Task B - ツリーグラフ
User imulan
Language C++11 (GCC 4.8.1)
Score 100
Code Size 1440 Byte
Status AC
Exec Time 46 ms
Memory 2048 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 2
AC × 20
Set Name Test Cases
Sample subtask0_sample_01.txt, subtask0_sample_02.txt
All subtask0_sample_01.txt, subtask0_sample_02.txt, subtask1_line01.txt, subtask1_line02.txt, subtask1_line03.txt, subtask1_line04.txt, subtask1_line05.txt, subtask1_line06.txt, subtask1_random01.txt, subtask1_random02.txt, subtask1_random03.txt, subtask1_random04.txt, subtask1_random05.txt, subtask1_random06.txt, subtask1_random07.txt, subtask1_random08.txt, subtask1_special01.txt, subtask1_special02.txt, subtask1_special03.txt, subtask1_special04.txt
Case Name Status Exec Time Memory
subtask0_sample_01.txt AC 46 ms 1928 KB
subtask0_sample_02.txt AC 37 ms 1904 KB
subtask1_line01.txt AC 37 ms 1940 KB
subtask1_line02.txt AC 37 ms 1948 KB
subtask1_line03.txt AC 36 ms 2048 KB
subtask1_line04.txt AC 35 ms 1944 KB
subtask1_line05.txt AC 36 ms 1944 KB
subtask1_line06.txt AC 35 ms 2032 KB
subtask1_random01.txt AC 34 ms 1940 KB
subtask1_random02.txt AC 36 ms 1948 KB
subtask1_random03.txt AC 35 ms 1900 KB
subtask1_random04.txt AC 33 ms 1904 KB
subtask1_random05.txt AC 35 ms 2036 KB
subtask1_random06.txt AC 33 ms 1948 KB
subtask1_random07.txt AC 37 ms 1936 KB
subtask1_random08.txt AC 35 ms 1940 KB
subtask1_special01.txt AC 35 ms 1912 KB
subtask1_special02.txt AC 35 ms 1940 KB
subtask1_special03.txt AC 36 ms 1904 KB
subtask1_special04.txt AC 34 ms 1940 KB