제출 #1187065

#제출 시각아이디문제언어결과실행 시간메모리
1187065Cebrayil09Vinjete (COI22_vinjete)C++20
11 / 100
3095 ms589824 KiB
#include <bits/stdc++.h>
using namespace std;

#define pii pair < int , int >
#define eb emplace_back
#define pb push_back
#define int long long
#define fi first
#define se second

const int inf = 1e18;
const int sz = 2e5;

int n,m;

vector<vector<array<int,3>>> g(sz);
int dis[sz];
bool color[sz];

map < int , int > vin;
void dfs(int u) {
    dis[u] = vin.size();
    color[u] = 1;

    for(auto &[v,l,r] : g[u]) {
        if(!color[v]) {
            for(int i = l;i <= r;i++) {
                vin[i]++;
            }
            dfs(v);

            for(int i = l;i <= r;i++) {
                vin[i]--;
                if(vin[i] == 0) vin.erase(i);
            }
        }
    }
}

void solve() {
    int n,m; cin >> n >> m;
    for(int i = 1;i <                                    n;i++) {
        int a,b,l,r; cin >> a >> b >> l >> r;

        array < int , 3 > arr = {b,l,r};
        g[a].eb(arr);

        arr[0] = a;
        g[b].eb(arr);
    }

    dfs(1);
    for(int i = 2;i <= n;i++) cout << dis[i] << "\n";
}

signed main() {
    ios_base::sync_with_stdio(0);
    cout.tie(0);

    int t = 1; //cin >> t;
    while(t--) 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...
#Verdict Execution timeMemoryGrader output
Fetching results...