답안 #447849

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
447849 2021-07-27T20:36:59 Z Antekb Sjeckanje (COCI21_sjeckanje) C++14
0 / 110
1 ms 332 KB
#include<bits/stdc++.h>
using namespace std;
const int N=1<<3;
typedef long long ll;
ll tab[N];
int lew[N+N], pra[N+N];
ll dp[2][2][N+N];
int red(ll a){
	if(a==0)return 0;
	return a/abs(a);
}
void upd(int v){
	if(v>=N){
		dp[0][0][v]=dp[1][0][v]=dp[0][1][v]=0;
		dp[1][1][v]=abs(tab[v-N]);
		return;
	}
	int L=lew[v], R=pra[v], M=(L+R)>>1;
	int l=2*v, r=2*v+1;
	if(red(tab[M])*red(tab[M+1])<0){
		//cout<<v<<"a\n";
		for(int x=0; x<2; x++){
			for(int y=0; y<2; y++){
				dp[x][y][v]=0;
				for(int i=0; i<2; i++){
					for(int j=0; j+i<2; j++){
						dp[x][y][v]=max(dp[x][y][v], dp[x][i][l]+dp[j][y][r]);
					}
				}
			}
		}
	}
	else{
		//cout<<v<<"b\n";
		for(int x=0; x<2; x++){
			for(int y=0; y<2; y++){
				dp[x][y][v]=0;
				for(int i=0; i<2; i++){
					for(int j=0; j<2; j++){
						dp[x][y][v]=max(dp[x][y][v], dp[x][i][l]+dp[j][y][r]);
					}
				}
			}
		}
	}
}
void construct(){
	for(int i=N; i<N+N; i++){
		lew[i]=i-N;
		pra[i]=i-N;
		upd(i);
	}
	for(int i=N-1; i>0; i--){
		lew[i]=lew[2*i];
		pra[i]=pra[2*i+1];
		upd(i);
	}
}
int n, q;
void ust(int i, int x){
	if(i==0 || i==n)return;
	tab[i]=x;
	i+=N;
	while(i>0){
		upd(i);
		i/=2;
	}
}
void out(){
	for(int i=0; i<=n; i++)cout<<tab[i]<<" ";
		cout<<"\n";
	for(int i=1; i<N+N; i++){
		cout<<i<<" "<<dp[0][0][i]<<" "<<dp[0][1][i]<<" "<<dp[1][0][i]<<" "<<dp[1][1][i]<<"\n";
	}
	cout<<"\n";
}
int main(){
	cin>>n>>q;
	int p;
	cin>>p;
	for(int i=1; i<n; i++){
		int pp;
		cin>>pp;
		tab[i]=pp-p;
		p=pp;
	}
	construct();
	while(q--){
		int l, r, d;
		cin>>l>>r>>d;
		ust(l-1, tab[l-1]+d);
		ust(r, tab[r]-d);
		//out();
		cout<<max({dp[0][0][1], dp[0][1][1], dp[1][1][1], dp[1][0][1]})<<"\n";
	}
}
# 결과 실행 시간 메모리 Grader output
1 Runtime error 1 ms 332 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 1 ms 332 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 1 ms 332 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -