题意理解有问题吗?
查看原帖
题意理解有问题吗?
1332453
__Florie_楼主2024/4/30 00:13

先不说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;
} 
2024/4/30 00:13
加载中...