제출 #336542

#제출 시각아이디문제언어결과실행 시간메모리
336542nickmet2004Trading (IZhO13_trading)C++11
100 / 100
297 ms13292 KiB
#include <bits/stdc++.h>
#define ll long long
#define int long long
using namespace std;
const int N=300005;
const int M=300005;
int m,n,l,r;
ll tree[4*N+2],x,ans;
void update(int i, int a, int b, int l, int r, int x){
	if(r<a || l>b) return;
	if( a>=l && b<=r) {
		int k=a-l+x;
		if(tree[i]>k) return;
		tree[i]=k;
		return;
	}
	int mid=(a+b)/2;
	if(a!=b){
		update(2*i+1,  a,  mid, l, r, x);
		update(2*i+2, mid+1,b, l , r, x);
	}


}
void findmx(int i, int a, int b, int x){

	if(x==a && x==b) {
		ans=tree[i];
		return;
	}
	int mid=(a+b)/2;
	if(tree[i]!=0 && a!=b){
		ll k=tree[i];
		tree[2*i+1]=max(tree[2*i+1], k);
		tree[2*i+2]=max(tree[2*i+2], k+(mid+1-a));
		tree[i]=0;
	}
	if(x<a || x>b) return;
	if(a!=b){
		findmx(2*i+1, a, mid, x);
		findmx(2*i+2, mid+1, b, x);
	}

}

main(){

    ios_base::sync_with_stdio(0); cin.tie(0);
	cin>>n>>m;
	for(int i=0; i<m; i++){
		cin>>l>>r>>x;
		l--; r--;
		update(0, 0, n-1, l, r, x);
	}
	for(int i=0; i<n; i++){
		ans=0;
		findmx(0,0,n-1,i);
		cout<<ans<<" ";
	}


}

컴파일 시 표준 에러 (stderr) 메시지

trading.cpp:46:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   46 | main(){
      |      ^
#Verdict Execution timeMemoryGrader output
Fetching results...