제출 #508135

#제출 시각아이디문제언어결과실행 시간메모리
508135ac2huTrading (IZhO13_trading)C++14
0 / 100
20 ms23984 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long 
const int N = 5e5 + 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<n;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;
    for(int i = 0;i<n;i++){
    	for(auto e : in[i]){
    		se.insert(tr[e].x - i);
    	}
    	// for(auto e : se)cout << e << " ";
    	// cout << endl;
    	if(se.size() == 0)
    		a[i] = 0;
    	else 
    		a[i] = *se.rbegin() + i;
    	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...