Submission #339718

#TimeUsernameProblemLanguageResultExecution timeMemory
339718amunduzbaevTrading (IZhO13_trading)C++14
0 / 100
1 ms364 KiB
/** made by amunduzbaev **/

#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp> 
#include <ext/pb_ds/tree_policy.hpp> 
#include <ext/rope>

using namespace __gnu_pbds;
using namespace __gnu_cxx;
using namespace std;

#define ff first
#define ss second
#define pb push_back
#define mp make_pair
#define ub upper_bound
#define lb lower_bound
#define ll long long
#define ld long double
#define pii pair<int, int>
#define pll pair<ll, ll>
#define sz(x) (int)x.size()
#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(),x.rend()
#define fastios ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define vll vector<ll>
#define vii vector<int>
#define vpii vector<pii>
#define vpll vector<pll>
#define cnt(a)__builtin_popcount(a)
template<class tmp> bool umin(tmp& a, const tmp b) {return a > b? a = b, true:false;}
template<class tmp> bool umax(tmp& a, const tmp b) {return a < b? a = b, true:false;}

typedef tree<pii,null_type,less<pii>,rb_tree_tag,tree_order_statistics_node_update> ordered_set;

const int N = 3e5+5;
const int mod = 1e9+7;
const ll inf = 1e18;
const ld Pi = acos(-1);
int n, m, k, ans[N], a[N];

void solve(){
	cin>>n>>m;
	for(int i=0;i<m;i++){
		int l, r, s;
		cin>>l>>r>>s;
		ans[l] = max(ans[l], s);
		ans[r] = max(ans[r], (r-l)+s);
	}
	int cur = (ans[1] ? ans[1] : -2)+1;
	for(int i=2;i<=n;i++){
		if(cur == -1) continue;
		else if(ans[i] == cur) cur = -2;
		else if(ans[i] < cur) ans[i] = max(ans[i], cur);
		else cur = ans[i];
		cur++;
	}
	
	for(int i=1;i<=n;i++) cout<<ans[i]<<" ";
	cout<<"\n";
	return;
}


int main(){
	fastios
	int t = 1;
	if(t) solve();
	else {
		cin>>t;
		while (t--) solve();
	}
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...