제출 #1293793

#제출 시각아이디문제언어결과실행 시간메모리
1293793orucPaprike (COI18_paprike)C++20
38 / 100
1 ms580 KiB
/// designed by Oruc Cabbarli #pragma GCC optimize("O3") #include <bits/stdc++.h> using namespace std; #define int long long #define vi vector<int> #define pii pair<int,int> #define vpii vector<pii> #define fi first #define se second #define pb push_back #define all(v) v.begin(), v.end() #define endl '\n' template<typename T>void show(vector<T> &v){ for(auto &i: v){ cout << i << ' '; } cout << endl; } const int N = 1e3+5; const int INF = 1e18; const int LOG = 20; const int MOD = 1e9+7; int n,k,c=0; int a[N]; vi g[N],dp(N); void dfs(int v , int p){ vi tmp; for(auto &u: g[v]){ if(u == p) { continue; } dfs(u,v); tmp.pb(a[u]); dp[v] += dp[u]; } sort(tmp.begin(), tmp.end()); for(int i = 0; i < tmp.size(); i++){ if(a[v]+tmp[i] <= k){ a[v]+=tmp[i]; } else{ dp[v]++; } } } void solve(){ cin >> n >> k; for(int i = 1; i <= n; i++){ cin >> a[i]; } for(int i = 1; i < n; i++){ int v,u; cin >> v >> u; g[u].pb(v); g[v].pb(u); } dfs(1,0); cout << dp[1] << endl; } signed main(){ ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); int t = 1; //cin >> t; for(int i = 1; i <= t; i++){ //cout << "Case #" << i << ": "; solve(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...