Submission #339730

#TimeUsernameProblemLanguageResultExecution timeMemory
339730amunduzbaevTrading (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);
ll n, m, k;
pii ans[N]; //, a[N];

void solve(){
	cin>>n>>m;
	for(int i=0;i<m;i++){
		int l, r, s;
		cin>>l>>r>>s;
		
		if(ans[l].ff < s){				
			ans[l].ss = ans[l].ff;
			ans[l].ff = s;
		}else ans[l].ss = max(ans[l].ss, s);
		
		if(ans[r].ff < (r-l)+s){				
			ans[r].ss = ans[r].ff;
			ans[r].ff = ((r-l)+s);
		}else ans[r].ss = max(ans[r].ss, (r-l+s));
	}
	int cur = (ans[1].ff ? ans[1].ff : -2)+1;
	for(int i=2;i<=n;i++){
		if(cur == -1) continue;
		if(ans[i].ff == cur && ans[i].ss) cur = ans[i].ss;
		else if(ans[i].ff == cur) cur = -2;
		else if(ans[i].ff < cur) ans[i].ff = cur;
		else cur = ans[i].ff;
		cur++;
	}
	
	for(int i=1;i<=n;i++) cout<<ans[i].ff	<<" ";
	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...