⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2216514_ac_15ms_28k.c

📁 北大大牛代码 1240道题的原代码 超级权威
💻 C
字号:
# include <stdio.h>
# include <string.h>

int n, h, MAX;
int f[30], d[30], t[30], sum[30];

void solve()
{
	int i, j, tmp, fish;
	int T[30], max, time[30], ans[30];

	MAX = -1;
	for(i = 0; i < n; i++)
	{
		tmp = h;
		fish = 0;
		tmp -= sum[i];
		memset(time,0,sizeof(time));
		if(tmp<0)
			break;
		for(j = 0; j <= i; j++)
			T[j] = f[j];
		while(tmp>0)
		{
			max = 0;
			for(j = 0; j <= i; j++)
				if(T[j]>T[max])
					max = j;
			if(!T[max])
				break;
			if(d[max])
			{
				fish += T[max];
				T[max] -= d[max];
				tmp--;
				time[max]++;
				if(T[max]<0)
					T[max] = 0;
			}
			else
			{
				while(tmp)//&&T[max]>0
				{
					fish += T[max];
					//T[max] -= d[max];
					tmp--;time[max]++;
				}
				T[max] = 0;
			}
		}
		time[0] += tmp;
		if(fish>MAX)
		{
			MAX = fish;
			for(j = 0; j < n; j++)
				ans[j] = time[j];
		}
	}
	for(j = 0; j < n-1; j++)
		printf("%d, ",ans[j]*5);
	printf("%d",ans[n-1]*5);
	printf("\nNumber of fish expected: %d\n\n",MAX);
}

int input()
{
	int i;

	scanf("%d",&n);
	if(!n)
		return 0;
	scanf("%d",&h);
	h *= 12;
	for(i = 0; i < n; i++)
		scanf("%d",&f[i]);
	for(i = 0; i < n; i++)
		scanf("%d",&d[i]);
	sum[0] = t[0] = 0;
	for(i = 1; i < n; i++)
	{
		scanf("%d",&t[i]);
		sum[i] = t[i]+sum[i-1];
	}
	solve();
	return 1;
}

int main()
{
	while(input());
	return 1;
}

⌨️ 快捷键说明

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