浙大1016(ac).cpp

来自「浙大ACM部分题目的代码。已经提交并AC通过」· C++ 代码 · 共 40 行

CPP
40
字号
#include<stdio.h>
int main()
{
	int p[20],w[20],i,sign,a,b;
	scanf("%d",&a);
	for(;a>0;a--)
	{
		scanf("%d",&b);
		for(i=0;i<b;i++)
		{
			scanf("%d",&p[i]);
		}
		for(i=b-1;i>0;i--)
		{
			p[i]-=p[i-1];//先做差存入p队列
		}
		for(i=0;i<b;i++)
		{
			if(p[i]!=0)
			{
				w[i]=1;//如果差不为0,说明此)与前一个)之间有至少一个(,所以只含一对
				p[i]-=1;
			}
			else
			{
				sign=i;
				while(p[sign]==0)//直到前一个不为0的差
					sign--;
				w[i]=i-sign+1;
				p[sign]-=1;
			}
		}
		for(i=0;i<b-1;i++)
		{
			printf("%d ",w[i]);
		}
		printf("%d\n",w[b-1]);
	}
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?