Submission #1227657


Source Code Expand

#include <bits/stdc++.h>
using namespace std;
/*{{{*/  //template
#define REP(i,n) for(int i=0;i<n;i++)
#define rep(i,n) for(int i=0;i<n;i++)
#define INF 1<<29
#define LINF LLONG_MAX/3
#define MP make_pair
#define PB push_back
#define pb push_back
#define EB emplace_back
#define ALL(v) (v).begin(),(v).end()
#define all(v) ALL(v)
#define sz(x) (int)(x).size()
#define debug(x) cerr<<#x<<":"<<x<<endl
#define debug2(x,y) cerr<<#x<<","<<#y":"<<x<<","<<y<<endl
//struct fin{ fin(){ cin.tie(0); ios::sync_with_stdio(false); } } fin_;
struct Double{ double d; explicit Double(double x) : d(x){} };
ostream& operator<<(ostream& os,const Double x){ os << fixed << setprecision(20) << x.d; return os; }
template<typename T> ostream& operator<<(ostream& os,const vector<T>& vec){ os << "["; for(const auto& v : vec){ os << v << ","; } os << "]"; return os; }
template<typename T,typename U> ostream& operator<<(ostream& os,const pair<T,U>& p){ os << "(" << p.first << ","<< p.second <<")"; return os; }
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> pii;
typedef vector<int> vi;
typedef vector<vi> vvi;
ll gcd(ll a,ll b){ if(b==0) return a; else return gcd(b,a%b); }
constexpr double eps = 1e-14; 
constexpr ll mod = 1e9+7;
const int dx[]={1,0,-1,0} ,dy[] = {0,1,0,-1};
/*}}}*/

constexpr ll MN = 100011;
ll N;

array<ll,MN> A;
array<vector<ll>,MN> g;
bool ans=true;

ll dfs(ll c,ll p){
    // leaf
    if(sz(g[c])==1) return A[c];
    // not leaf
    vector<ll> ch;
    for(auto v:g[c]) if(v!=p){
        ch.pb(dfs(v,c));
    }
    ll mx = *max_element(all(ch));
    ll sum = accumulate(all(ch),0);

    ll np = 2*A[c]-sum;  // connect for the direction of parent
    ll cp = (sum-np)/2;

    if(np<0 or (sum-np)%2==1){ ans=false; }
    if(sum-mx<cp){ ans=false; }
    cout << "dfs(" << c << "," << p << ") = " << np << endl;
    return np;
}

int main(){
    cin >> N;
    rep(i,N) cin>>A[i];
    rep(i,N-1){
        ll a,b;cin>>a>>b;a--;b--;
        g[a].pb(b);
        g[b].pb(a);
    }

    if(N==2){
        cout << (A[0]==A[1] ? "YES" : "NO") << endl;
        return 0;
    }

    ll tmp;
    for(int i=0;i<N;i++) if(sz(g[i])>1){
        cout << "root:" << i << endl;
        tmp = dfs(i,-1);
        break;
    }
    if(!ans){
        cout << "NO" << endl;
        return 0;
    }
    if(tmp==0) cout << "YES" << endl;
    else cout << "NO" << endl;
}

Submission Info

Submission Time
Task C - Cleaning
User chakku000
Language C++14 (GCC 5.4.1)
Score 0
Code Size 2467 Byte
Status WA
Exec Time 306 ms
Memory 16512 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 700
Status
WA × 3
AC × 2
WA × 49
Set Name Test Cases
Sample sample1.txt, sample2.txt, sample3.txt
All sample1.txt, sample2.txt, sample3.txt, in1.txt, in10.txt, in11.txt, in12.txt, in13.txt, in14.txt, in15.txt, in16.txt, in17.txt, in18.txt, in19.txt, in2.txt, in20.txt, in21.txt, in22.txt, in23.txt, in24.txt, in25.txt, in26.txt, in27.txt, in28.txt, in29.txt, in3.txt, in30.txt, in31.txt, in32.txt, in33.txt, in34.txt, in35.txt, in36.txt, in37.txt, in38.txt, in39.txt, in4.txt, in40.txt, in41.txt, in42.txt, in43.txt, in44.txt, in45.txt, in5.txt, in6.txt, in7.txt, in8.txt, in9.txt, sample1.txt, sample2.txt, sample3.txt
Case Name Status Exec Time Memory
in1.txt WA 200 ms 8320 KB
in10.txt WA 201 ms 8320 KB
in11.txt WA 295 ms 15744 KB
in12.txt WA 306 ms 15872 KB
in13.txt WA 279 ms 16512 KB
in14.txt WA 278 ms 15488 KB
in15.txt WA 2 ms 2560 KB
in16.txt WA 2 ms 2560 KB
in17.txt AC 2 ms 2560 KB
in18.txt AC 2 ms 2560 KB
in19.txt WA 207 ms 8320 KB
in2.txt WA 207 ms 8320 KB
in20.txt WA 210 ms 8320 KB
in21.txt WA 203 ms 8320 KB
in22.txt WA 206 ms 8320 KB
in23.txt WA 202 ms 8320 KB
in24.txt WA 208 ms 8320 KB
in25.txt WA 2 ms 2560 KB
in26.txt WA 218 ms 8576 KB
in27.txt WA 215 ms 8576 KB
in28.txt WA 2 ms 2560 KB
in29.txt WA 192 ms 8192 KB
in3.txt WA 214 ms 8320 KB
in30.txt WA 2 ms 2560 KB
in31.txt WA 210 ms 8320 KB
in32.txt WA 208 ms 8320 KB
in33.txt WA 201 ms 8320 KB
in34.txt WA 202 ms 8320 KB
in35.txt WA 202 ms 8320 KB
in36.txt WA 208 ms 8320 KB
in37.txt WA 4 ms 2688 KB
in38.txt WA 207 ms 8320 KB
in39.txt WA 205 ms 8320 KB
in4.txt WA 200 ms 8320 KB
in40.txt WA 199 ms 8320 KB
in41.txt WA 209 ms 8320 KB
in42.txt WA 208 ms 8320 KB
in43.txt WA 206 ms 8320 KB
in44.txt WA 207 ms 8320 KB
in45.txt WA 201 ms 8320 KB
in5.txt WA 203 ms 8320 KB
in6.txt WA 207 ms 8320 KB
in7.txt WA 184 ms 7680 KB
in8.txt WA 48 ms 3968 KB
in9.txt WA 205 ms 8320 KB
sample1.txt WA 2 ms 2560 KB
sample2.txt WA 2 ms 2560 KB
sample3.txt WA 2 ms 2560 KB