From ce755d9a447a6b400373c6072dc284581cd5f744 Mon Sep 17 00:00:00 2001 From: Zengtudor Date: Sun, 13 Jul 2025 21:41:30 +0800 Subject: [PATCH] update --- src/7/13/U82726.cpp | 48 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/src/7/13/U82726.cpp b/src/7/13/U82726.cpp index be90f3a..d85c88a 100644 --- a/src/7/13/U82726.cpp +++ b/src/7/13/U82726.cpp @@ -1,6 +1,10 @@ +#include +#include #include #include #include +#include +#include using ll = int64_t; @@ -8,7 +12,7 @@ bool is_num(char c){ return '0'<=c&&c<='9'; } -ll get_num(){ +ll getnum(){ char c; do { c=getchar(); @@ -20,6 +24,46 @@ ll get_num(){ return n; } +const ll maxn=1e6+5; +std::vector> v; +std::vector nxt; +std::vector ans; + +ll getfather(ll n){ + if(nxt[n]==n)return n; + nxt[n] = getfather(nxt[n]); + return nxt[n]; +} + +#define NV(v) {std::cout<<#v<<" : "<<(v)<<'\n';} + int main(){ - + v.resize(maxn); + nxt.resize(maxn); + ans.resize(maxn); + + ll n,q; + n=getnum(); + q=getnum(); + for(ll i=1;i<=q;i++){ + ll x,y,z; + x=getnum();y=getnum();z=getnum(); + v.push_back({x,y,z}); + } + for(ll i=1;i<=n;i++)nxt[i]=i; + for(ll i=n-1;i>=0;i--){ + auto[l,r,c] = v[i]; + NV(l)NV(r)NV(c) + ll idx=nxt[l]; + while(idx<=r){ + ans[idx]=c; + nxt[idx]=getfather(nxt[idx+1]); + idx=nxt[idx]; + NV(idx) + } + } + for(ll i=1;i<=n;i++){ + std::cout<