#include #include #include #include #include #include using namespace std; using ll = int64_t; ll const maxn{2500+5}; ll n,ans; array t,tmp; vector adj[maxn]; void dfs(ll const& ftr, ll const& u){ for(ll const& v:adj[u]){ if(v==ftr)continue; dfs(u,v); tmp[u]+=12-tmp[v]; tmp[u]%=12; if(tmp[u]==0)tmp[u]=12; } } int main(){ cin.tie(nullptr),cout.tie(nullptr),ios::sync_with_stdio(false); cin>>n; for(ll i{1};i<=n;i++)cin>>t[i]; for(ll i{1};i>u>>v; adj[u].emplace_back(v); adj[v].emplace_back(u); } for(ll i{1};i<=n;i++){ copy(t.data(),t.data()+1+n,tmp.data()); dfs(0,i); if(tmp[i]==12||tmp[i]==1){ ans++; } } cout<