社区讨论

60分 TLE求助

P7912[CSP-J 2021] 小熊的果篮参与者 3已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@lo1hp5ro
此快照首次捕获于
2023/10/22 21:13
2 年前
此快照最后确认于
2023/11/02 21:50
2 年前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
int a[200005],ans[200005];
inline int read()
{
	char c;
	c = getchar();
	int sum=0;
	while(c>='0'&&c<='9')
	{
		sum = sum * 10 + c - '0';
		c = getchar();
	}
	return sum;
}

int main()
{
	int n;
	n = read();
	for(int i=1;i<=n;i++)
		a[i] = read();
	int l = n;
	while(l>0)
	{
		int cnt = 1,cur=0,skip=0;
		bool f = 0;
		for(int i=1;i<=n;i++)
		{
			
			if(!f)
			{
				if(a[i]!=2)
					f = 1;
				continue;
			}
			cnt++;
			if(a[i]==2&&f)
			{
				skip++;
				continue;
			}
			if(a[i]!=a[i-skip-1])
			{
				a[i-cnt+1] = 2;
				ans[++cur] = i-cnt+1;
				cnt = 1;
			}
			skip = 0;
		}
		a[n-cnt+1] = 2;
		ans[++cur] = n-cnt+1;
		l-=cur;
		for(int i=1;i<=cur;i++)
			printf("%d ",ans[i]);
		printf("\n");
	}
}

回复

3 条回复,欢迎继续交流。

正在加载回复...