先不说TLE的问题,和初学者新奇的脑回路...
只AC了13~14~15~19~20ε=(´ο`*)))唉
上代码
#include<bits/stdc++.h>
using namespace std;
int n,m;
long long yyy[100005];
int shijian[100005];
long long a[100005],b[100005],c[100005];
long long fall[100005];//非0为有绯狱丸
long long up;
void putin()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>yyy[i];
}
for(int i=1;i<=m;i++)
{
cin>>shijian[i];
if(shijian[i]==1||shijian[i]==2)
{
cin>>a[i]>>b[i];
}
else
{
cin>>a[i]>>b[i]>>c[i];
}
}
}
void work()
{
for(int i=1;i<=m;i++)
{
if(shijian[i]==1)
{
yyy[a[i]]=b[i]-yyy[a[i]];
fall[a[i]]=b[i];
}
else
{
if(shijian[i]==2)
{
bool opp=0;
for(int j=b[i];j>=a[i];j--)
{
if(fall[j]!=0)
{
up=up+fall[j];
cout<<fall[j]<<endl;
fall[j]=0;
yyy[j]=0;
opp=1;
break;
}
}
if(opp==0)
{
long long maxx=0;int opp=0;
for(int j=a[i];j<=b[i];j++)
{
if(maxx<=yyy[j])
{
opp=j;
maxx=yyy[j];
}
}
yyy[opp]=0;
up=up+maxx;
cout<<maxx<<endl;
}
}
else
{
for(int j=a[i];j<=b[i];j++)
{
yyy[j]=yyy[j]+c[i];
if(fall[j]!=0)
{
fall[j]=fall[j]+c[i];
}
}
}
}
}
}
void putout()
{
if(up<10000)
{
cout<<"QAQ";
}
else
{
if(up<10000000)
{
cout<<"Sakura";
}
else
{
cout<<"ice";
}
}
}
int main(){
putin();
work();
putout();
return 0;
}