Submission #1317152

#TimeUsernameProblemLanguageResultExecution timeMemory
1317152xosqedemrufoTrading (IZhO13_trading)C++20
100 / 100
201 ms30492 KiB
//Author RufatM
#pragma GCC optimize("Ofast")
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#include <ext/pb_ds/detail/standard_policies.hpp>
using namespace __gnu_pbds;
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
typedef vector<int> vi;
typedef vector<pii> vpii;
typedef vector<vector<int>> vvi;
typedef vector<ll> vll;
typedef vector<bool> vb;
typedef vector<string> vs;
typedef map<int,int> mpii;
typedef map<bool,int> mpbi;
#define fastio ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define endl '\n'
#define pb push_back
#define pf push_front
#define eb emplace_back
#define ff first
#define ss second
#define all(x) begin(x),end(x)
#define precise(x) cout << fixed << setprecision(x);
#define rall(x) rbegin(x),rend(x)
#define ordered_set tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update>
const int MOD=1000003;
const int INF=1e9;
const ll LINF=1e18;
const int MAXN=2005;
ll add(ll a,ll b){
    return (a+b)%MOD;
}
ll sub(ll a,ll b){
    return (a-b+MOD)%MOD;
}
ll mul(ll a,ll b){
    return (a*b)%MOD;
}
ll binpow(ll a,ll b){
    ll res=1;
    while(b>0){
        if(b&1){
            res=mul(res,a);
        }
        a=mul(a,a);
        b>>=1;
    }
    return res;
}
ll modinv(ll a){
    return binpow(a,MOD-2);
}
void solve(){
    int n,m;
    cin >> n >> m;
    vector<vll> add(n+2),remove(n+3);
    for(int i=0;i<m;i++){
        ll l,r,x;
        cin >> l >> r >> x;
        add[l].pb(x-l);
        remove[r+1].pb(x-l);
    }
    multiset<ll> ms;
    for(int j=1;j<=n;j++){
        for(int i=0;i<add[j].size();i++){
            ms.insert(add[j][i]);
        }
        for(int i=0;i<remove[j].size();i++){
            ms.erase(ms.find(remove[j][i]));
        }
        ll ans = 0;
        if(!ms.empty()){
            ans = j+(*ms.rbegin());
        }
        cout << ans << " ";
    }
}
signed main(){
    fastio;
    int t=1;
    //cin >> t;
    while(t--){
        solve();
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...