Submission #1190335

#TimeUsernameProblemLanguageResultExecution timeMemory
1190335vitoVinjete (COI22_vinjete)C++20
24 / 100
501 ms589824 KiB
#include <bits/stdc++.h> using namespace std; using ll=long long; #define F first #define S second #define sz(x) int(x.size()) const int MAX=1e5+5; vector<pair<int, pair<int, int>>> gr[MAX]; int n, m, out[MAX]; set<pair<int, int>> a[MAX]; void dfs(int v, int p) { for(auto &u : gr[v]) { if(u.F!=p) { a[u.F]=a[v]; a[u.F].insert(u.S); int mx=0; for(auto &i : a[u.F]) { if(mx<i.F) { out[u.F]+=i.S-i.F+1; } else if(mx<i.S) { out[u.F]+=i.S-mx; } mx=max(mx, i.S); } dfs(u.F, v); } } } signed main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> m; for(int i=0; i<n-1; i++) { int x, y, l, r; cin >> x >> y >> l >> r; gr[x].push_back(make_pair(y, make_pair(l, r))); gr[y].push_back(make_pair(x, make_pair(l, r))); } dfs(1, 1); for(int i=2; i<=n; i++) { cout << out[i] << '\n'; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...