제출 #1159860

#제출 시각아이디문제언어결과실행 시간메모리
1159860jmuzhenJanjetina (COCI21_janjetina)C++20
0 / 110
1 ms1864 KiB
#include<bits/stdc++.h> using namespace std; #define int long long const int MAXN = 2e5 + 5; int n,k; vector<vector<pair<int,int>>> adj; vector<int> sz(MAXN); int pre=0; map<int,int>pre2n,n2pre; void dfs_init(int u, int p) { int s = 1; pre2n[u]=pre; n2pre[pre]=u; pre++; for (auto [v,w]: adj[u]) { if (v==p) continue; dfs_init(v,u); s += sz[v]; } sz[u] = s; } int ans=0; void dfs(int u, int p, int val) { if(val>=k-1) { ans += sz[u] * (n-sz[u]); return; } for (auto [v,w] : adj[u]) { if (v==p)continue; dfs(v,u,val+w); } } signed main() { cin>>n>>k; adj.resize(n+1); for (int i = 0; i < n-1; i++) { int a,b,w;cin>>a>>b>>w; w--; adj[a].push_back({b,w}); adj[b].push_back({a,w}); } dfs_init(1, -1); dfs(1,-1,0); cout<<ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...