75pts求助
查看原帖
75pts求助
561949
syr1125楼主2022/12/25 09:55
#include <bits/stdc++.h>
using namespace std;

int n, T, a[100005], vis[100005], ans = 0;

int main()
{
	scanf("%d%d", &n, &T);
	for (int i = 1; i <= n; i ++)
	{
		scanf("%d", &a[i]);
	}
	
	while (T --)
	{
		int op;
		scanf("%d", &op);
		if (op == 1)
		{
			int x, val;
			scanf("%d%d", &x, &val);
			a[x] = val - a[x];
			vis[x] = 1;
		}
		else if (op == 2)
		{
			int l, r, val = 0, now;
			scanf("%d%d", &l, &r);
			for (r; r >= l; r --)
			{
				if (vis[r])
				{
					vis[r] = 0;
					val = a[r], now = r;
					break;
				}
				else
				{
					if (a[now] < a[r])
					{
						now = r;
						val = a[r];
					} 
				}
			}
			ans += val;
			a[now] = 0;
			printf("%d\n", val);
		}
		else
		{
			int l, r, val;
			scanf("%d%d%d", &l, &r, &val);
			for (l; l <= r; l ++)
			{
				a[l] += val;
			}
		}
	}
	
	if (ans < 10000)
	{
		puts("QAQ");
	}
	else if (ans < 10000000)
	{
		puts("Sakura");
	}
	else
	{
		puts("ice");
	}
	return 0;
}

用模拟写的,只有75pts,剩下2WA,3TLE

2022/12/25 09:55
加载中...