(UPD: 2024-12-04 14:48 UTC) Judge is not working due to Cloudflare incident. (URL) We can do nothing about it, sorry. After the incident is resolved, we will grade all submissions.

Submission #45009

#TimeUsernameProblemLanguageResultExecution timeMemory
45009XellosPaprike (COI18_paprike)C++14
100 / 100
125 ms45608 KiB
#include <bits/stdc++.h> // iostream is too mainstream #include <cstdio> // bitch please #include <iostream> #include <algorithm> #include <cstdlib> #include <vector> #include <set> #include <map> #include <queue> #include <stack> #include <list> #include <cmath> #include <iomanip> #include <time.h> #define dibs reserve #define OVER9000 1234567890 #define ALL_THE(CAKE,LIE) for(auto LIE =CAKE.begin(); LIE != CAKE.end(); LIE++) #define tisic 47 #define soclose 1e-8 #define chocolate win // so much chocolate #define patkan 9 #define ff first #define ss second #define abs(x) ((x < 0)?-(x):x) #define uint unsigned int #define dbl long double #define pi 3.14159265358979323846 using namespace std; // mylittledoge typedef long long cat; #ifdef DONLINE_JUDGE // palindromic tree is better than splay tree! #define lld I64d #endif void DFS(int R, int par, vector< vector<int> > &G, cat K, vector<cat> &H, vector<cat> &sum, vector<int> &cost) { vector<cat> ss; ALL_THE(G[R], it) if(*it != par) { DFS(*it, R, G, K, H, sum, cost); cost[R] += cost[*it]; ss.push_back(sum[*it]); } sort(begin(ss), end(ss)); sum[R] = H[R]; for(int i = 0; i < (int)ss.size(); i++) { if(sum[R]+ss[i] <= K) sum[R] += ss[i]; else { cost[R] += ss.size()-i; break; } } } int main() { cin.sync_with_stdio(0); cin.tie(0); cout << fixed << setprecision(10); int N; cat K; cin >> N >> K; vector<cat> H(N); for(int i = 0; i < N; i++) cin >> H[i]; vector< vector<int> > G(N); for(int i = 0; i < N-1; i++) { int x, y; cin >> x >> y; G[--x].push_back(--y); G[y].push_back(x); } vector<int> cost(N, 0); vector<cat> sum(N, 0); DFS(0, 0, G, K, H, sum, cost); cout << cost[0] << "\n"; return 0;} // look at my code // my code is amazing
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...