youpiao.cpp

来自「设有n种不同面值a1, a2,…, an的邮票」· C++ 代码 · 共 59 行

CPP
59
字号
#include"stdio.h"
int now,level,v[1000],a[11],n,m;
void stamp(int c)
{
	int i,nlev;
	for(i=0;i<n;i++)
	{
		if(a[i]>=level)
		{
			now+=a[i];	
			v[now]=1;
			if(c<m)
			{
				nlev=level;
				level=a[i];
				stamp(c+1);
				level=nlev;
			}
			now-=a[i];
		}
	}
}
int main()
{
	int i,ca,len,end,max,last;
	scanf("%d",&ca);
	while(ca--)
	{
		scanf("%d%d",&n,&m);
		for(i=0;i<n;i++)
			scanf("%d",&a[i]);
		last=a[n-1]*m;
		for(i=a[0];i<=last;i++)
			v[i]=0;
		now=0;
		level=0;
		stamp(1);
		i=a[0];
		max=0;
		while(i<=last)
		{
			len=0;
			while(v[i]==1&&i<=last) 
			{
				len++;
				i++;
			}
			if(len>max)
			{
				max=len;
				end=i-1;
			}
			i++;
		}
		printf("%d %d\n",end-max+1,end);
	}
	return 0;
}

⌨️ 快捷键说明

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