CF Om Nom and Candies

分析:输入总重量c,红糖幸福值hr,蓝糖幸福值hb,红糖重wr,蓝糖重wb.输出最大的幸福值。直接暴力就可以了。为了防止时间超限,限制它的循环次数。

# include <stdio.h>
  int main()
  {
	  __int64 c,hr,hb,wr,wb,r,b,i,j,max=0,time=10000000;
	  scanf("%I64d%I64d%I64d%I64d%I64d",&c,&hr,&hb,&wr,&wb);
	  r=c/wr;//最多取r个red candy
	  b=c/wb;//最多取b个blue candy
	  for(i=0;i<=r&&i<=time;i++)
	  {
		  j=(c-i*wr)/wb;//取i个红糖最多取j个蓝糖
		  if(i*hr+j*hb>max)
			  max=i*hr+j*hb;
	  }
	  for(j=0;j<=b&&j<=time;j++)
	  {
		  i=(c-j*wb)/wr;//取j个蓝糖最多取i个红糖
		  if(i*hr+j*hb>max)
			  max=i*hr+j*hb;
	  }
	  printf("%I64d\n",max);
	  return 0;
  }


你可能感兴趣的:(ACM,CF)