题解
大力出奇迹,交了一发暴力没想到强行卡过去了qwq
代码
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cctype>
#define inf 0x3f3f3f3f
#define ll long long
using namespace std;
int D[50100],L[50100],n,m,l,r,start;
inline int read()
{
int ret=0,f=1;char ch=getchar();
for (;!isdigit(ch);ch=getchar()) if (ch=='-') f=-1;
for (;isdigit(ch);ch=getchar()) ret=ret*10+ch-'0';
return ret*f;
}
int main()
{
n=read();m=read();
for (int i=1;i<=n;i++) D[i]=read();
for (int i=1;i<=n;i++) L[i]=read();
for (int i=1;i<=m;i++)
{
l=read();r=read();start=read();
int cur=start,ans=start;
for (int j=l;j<=r;j++)
{
cur=min(D[j]+cur,L[j]);
cur=max(cur,start);
ans=max(ans,cur);
}
printf("%d\n",ans);
}
return 0;
}