Submission #286729


Source Code Expand

#include <bits/stdc++.h>

using namespace std;

#define rep(i, n) for(int i = 0; i < (int)n; ++i)
#define repf(i, f, l) for(int i = f; i < (int)l; ++i)

#ifdef ONLINE_JUDGE
#define DEBUG false
#else
#define DEBUG true
#endif

#define pb emplace_back
#define lb lower_bound
#define ul unsigned long
#define ull unsigned long long
#define ll long long
#define INF 1000000007
#define MOD 1000000007
#define fs first
#define sd second

#define ALL(c) (c).begin(),(c).end()

#define DBG0(x)    {if(DEBUG){ cout << #x << ": " << x << "\t"; }}
#define DBG(x)     {if(DEBUG){DBG0(x); cout << endl;}}
#define DBG2(x, y) {if(DEBUG){DBG0(x); DBG(y);}}
#define DBG3(x, y, z) {if(DEBUG){DBG0(x); DBG2(y, z);}}
#define DBG4(w, x, y, z) {if(DEBUG){DBG0(w); DBG3(x, y, z);}}

template <class T>
ostream& operator<<(ostream& os, vector<T> xs){ for(T x: xs) os << x << ' '; return os; }
template <class S, class T>
ostream& operator<<(ostream& os, pair<S,T> st){ os << "(" << st.first << "," << st.second <<")"; return os; }

typedef vector<int> vint;
typedef vector<ll> vll;
typedef vector<ul> vul;
typedef vector<ull> vull;
typedef vector<bool> vbl;
typedef pair<int, int> pii;

int main(void){
    int n, x;
    cin >> n >> x;
    vector<int> h(n);
    rep(i, n) cin >> h[i];
    vector<vector<int>> edge(n, vector<int>(n, 0));
    rep(i, n - 1){
        int a, b;
        cin >> a >> b;
        a--; b--;
        edge[a][b] = 1;
        edge[b][a] = 1;
    }
    vector<int> deg(n, 0);
    rep(i, n) rep(j, n) if(edge[i][j]) deg[i]++;

    for(bool flg = true; flg; ){
        flg = false;
        rep(i, n){
            if(deg[i] == 1 && !h[i]){
                flg++;
                deg[i] = 0;
                rep(j, n){
                    if(edge[i][j]){
                        edge[i][j] = 0;
                        edge[j][i] = 0;
                        deg[j]--;
                    }
                }
            }
        }
    }
    int ans = 0;
    rep(i, n) rep(j, n) ans += edge[i][j];
    cout << ans << endl;
    return 0;
}

Submission Info

Submission Time
Task B - ツリーグラフ
User numa
Language C++11 (GCC 4.8.1)
Score 0
Code Size 2112 Byte
Status WA
Exec Time 23 ms
Memory 932 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 100
Status
AC × 2
AC × 13
WA × 7
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 21 ms 804 KB
subtask0_sample_02.txt AC 22 ms 920 KB
subtask1_line01.txt AC 23 ms 736 KB
subtask1_line02.txt WA 22 ms 920 KB
subtask1_line03.txt WA 21 ms 932 KB
subtask1_line04.txt WA 23 ms 928 KB
subtask1_line05.txt AC 23 ms 928 KB
subtask1_line06.txt AC 21 ms 924 KB
subtask1_random01.txt AC 22 ms 736 KB
subtask1_random02.txt WA 21 ms 928 KB
subtask1_random03.txt AC 22 ms 812 KB
subtask1_random04.txt WA 23 ms 732 KB
subtask1_random05.txt AC 22 ms 804 KB
subtask1_random06.txt WA 22 ms 924 KB
subtask1_random07.txt AC 22 ms 736 KB
subtask1_random08.txt WA 21 ms 924 KB
subtask1_special01.txt AC 22 ms 924 KB
subtask1_special02.txt AC 22 ms 924 KB
subtask1_special03.txt AC 22 ms 928 KB
subtask1_special04.txt AC 23 ms 804 KB