一个都没过,呜呜呜……
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstdlib>
#include<climits>
#define int long long
#define lc k<<1
#define rc k<<1|1
using namespace std;
const int maxn=3e5+5;
int n,q,c1,c2,w1,w2;
int a[maxn];
inline int read()
{
int x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9')
{
if(ch=='-')
f=-1;
ch=getchar();
}
while(ch>='0' && ch<='9')
x=x*10+ch-'0',ch=getchar();
return x*f;
}
struct node
{
int l;
int r;
int mx;
int sm;
} tree[maxn*4];
void build(int k,int l,int r)
{
tree[k].l=l;
tree[k].r=r;
if(l==r)
{
tree[k].sm=a[l];
tree[k].mx=a[l];
return;
}
int mid=(l+r)/2;
build(lc,l,mid);
build(rc,mid+1,r);
tree[k].sm=tree[lc].sm+tree[rc].sm;
tree[k].mx=max(tree[lc].mx,tree[rc].mx);
}
void update(int k,int i,int v)
{
if(tree[k].l==tree[k].r&&tree[k].l==i)
{
tree[k].mx+=v;
tree[k].sm+=v;
return;
}
int mid=(tree[k].l+tree[k].r)/2;//cout<<"!";
if(i<=mid)
{
update(lc,i,v);
}
else
{
update(rc,i,v);
}
tree[k].sm=tree[lc].sm+tree[rc].sm;
tree[k].sm=max(tree[lc].sm,tree[rc].sm);
}
int query(int k,int l,int r)
{
if(tree[k].l>=l&&tree[k].r<=r)
{
return tree[k].sm;
}
int mid=(tree[k].l+tree[k].r)/2;
int Sum=0;
if(l<=mid)
{
Sum=Sum+query(lc,l,r);
}
if(r>mid)
{
Sum=Sum+query(rc,l,r);
}
return Sum;
}
int query_max(int k,int l,int r)
{
if(tree[k].l>=l&&tree[k].r<=r)
{
return tree[k].mx;
}
int mid=(tree[k].l+tree[k].r)/2;
int Max=-0x3f3f3f3f;
if(l<=mid)
{
Max=max(Max,query(lc,l,r));
}
if(r>mid)
{
Max=max(Max,query(rc,l,r));
}
return Max;
}
signed main()
{
//freopen("seq3.in","r",stdin);
//freopen("seq3.out","w",stdout);
n=read();
q=read();
c1=read();
c2=read();
w1=read();
w2=read();
for(int i=1;i<=n;i++)
{
a[i]=read();
}
build(1,1,n);
while(q--)
{
int opt=0;
opt=read();
if(opt==1)
{
int x=0,z=0;
x=read();
z=read();
update(1,x,z);
}
else if(opt==2)
{
int L=0,R=0;
L=read();
R=read();
if(query_max(1,L,R)>w1)
{
printf("tetris\n");
continue;
}
int l=-1,r=-1;
for(int i=L;i+c2<=R;i++)
{
if(query(1,i,i+c2)>w2)
{
cout<<i<<endl;
l=i;
break;
}
}
for(int i=R;i-c2>=L;i--)
{
if(query(1,i-c2,i)>w2)
{
cout<<i<<endl;
r=i;
break;
}
}
cout<<query(1,l,r)<<endl;
if(l==-1&&r==-1)
{
printf("cont\n");
continue;
}
if(r-l+1>c1||query(1,l,r)>w1)
{
printf("tetris\n");
continue;
}
else
{
printf("cont\n");
continue;
}
}
}
return 0;
}