Submission #508192

#TimeUsernameProblemLanguageResultExecution timeMemory
508192ac2huTrading (IZhO13_trading)C++14
100 / 100
389 ms39996 KiB
#include<bits/stdc++.h>
using namespace std;
const int N = 3e5 + 10;
int n,m;
int a[N];
struct tr{
	int l,r,x;
} tr[N];
vector<int> in[N],out[N];
signed main(){
    iostream::sync_with_stdio(false);
    cin.tie(nullptr);cout.tie(nullptr);
    cin >> n >> m;
    for(int i = 0;i<m;i++){
    	cin >> tr[i].l >> tr[i].r >> tr[i].x;
    	tr[i].l--;
    	tr[i].r--;
    	in[tr[i].l].push_back(i);
    	out[tr[i].r].push_back(i);
    }
    multiset<int> se;
    int c = 0;
    for(int i = 0;i<n;i++){
    	for(auto e : in[i]){
    		se.insert(tr[e].x - c);
    	}
    	// for(auto e : se)cout << e << " ";
    	// cout << endl;
    	if(se.size() == 0)
    		a[i] = 0;
    	else 
    		a[i] = *se.rbegin() + c;
    	c++;
    	for(auto e : out[i]){
    		int val = tr[e].x - tr[e].l;
    		// cerr << e <<  " " << val << endl;
    		se.erase(se.find(val));
    	}
    }
    for(int i = 0;i<n;i++)
    	cout << a[i] << " ";
    cout << "\n";
}
#Verdict Execution timeMemoryGrader output
Fetching results...