怎么回事
查看原帖
怎么回事
257563
Harry_8810楼主2020/5/19 19:57

思路:在前m个水龙头中的最小时间值加上后面的没有加入的时间值,这样前m个时间值的最大值就是答案
代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n,m;
	scanf("%d%d",&n,&m);
	int w[m+2];
	for(int i=1;i<=m;i++)
	{
		scanf("%d",&w[i]);
	}
	if(m<n) 
	{
		for(int i=1;i<=n-m;i++)//n-m=2
		{
			int MIN=10000,MINNUM;
			for(int j=1;j<=m;j++)
			{
				if(w[j]<MIN)
				{
					MINNUM=j;
					MIN=w[j];
				}
			}
			w[MINNUM]+=w[i+m];
		}
	}
	else
	{
		m=n;
	}
	int MAX=-10000;
	for(int i=1;i<=m;i++)
	{
		MAX=max(MAX,w[i]);
	}
	printf("%d",MAX);
	return 0;
}
2020/5/19 19:57
加载中...