Submission #1298489

#TimeUsernameProblemLanguageResultExecution timeMemory
1298489muhammad-ahmadVinjete (COI22_vinjete)C++20
24 / 100
1062 ms589824 KiB
// #include <bits/stdc++.h> #include <iostream> #include <cmath> #include <algorithm> #include <map> #include <vector> #include <iomanip> #include <string> #include <queue> #include <set> #include <deque> #include <numeric> #include <stack> #include <chrono> using namespace std; void fast_io(){ // freopen("", "r", stdin); // freopen("", "w", stdout); ios::sync_with_stdio(0); cin.tie(); cout.tie(); cout << setprecision(9); } #define int long long #define endl '\n' #define all(v) (v).begin(), (v).end() #define rall(v) (v).rbegin(), (v).rend() #define fi first #define se second const int N = 2e5 + 5; int n, m; int ans[N]; vector<pair<int, pair<int, int>>> adj[N]; void dfs(int u = 1, int par = 0, vector<pair<int, int>> cost = {}){ sort(all(cost)); vector<pair<int, int>> ch; if (cost.size()){ ch.push_back(cost[0]); for (int i = 1; i < (int) cost.size(); i++){ if (cost[i].first <= ch.back().second){ auto x = ch.back(); ch.pop_back(); x.second = max(x.second, cost[i].second); ch.push_back(x); } else ch.push_back(cost[i]); } } // cout << u << endl; // for (auto i : ch) cout << i.first << ' ' << i.second << endl; // cout << endl; for (int i = 0; i < (int) ch.size(); i++) ans[u] += ch[i].second - ch[i].first + 1; for (auto [v, interval] : adj[u]){ if (v == par) continue; ch.push_back({interval.first, interval.second}); dfs(v, u, ch); ch.pop_back(); } } void solve() { cin >> n >> m; // swap(m, n); for (int i = 1; i < n; i++){ int u, v, l, r; cin >> u >> v >> l >> r; adj[u].push_back({v, {l, r}}); adj[v].push_back({u, {l, r}}); } dfs(); for (int i = 2; i <= n; i++) cout << ans[i] << ' '; cout << endl; return; } signed main() { fast_io(); srand(chrono::steady_clock::now().time_since_epoch().count()); int tc = 1; // cin >> tc; while (tc--) solve(); 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...