View Code of Problem 3699

#include<stdio.h>
#include<math.h>
/*判断0到l点的总伤害,取最小值*/
int xq[2000];
int f[10000];
int main(void)
{
	int l,n;//2个正整数L,N
	while(scanf("%d%d",&l,&n)!=EOF)
	{
		for(int i=0;i<n;i++)
	{
		scanf("%d",&xq[i]);//N个整数,第i个数表示编号为i的血球落点坐标k[i]
	}
	for(int i=0;i<n;i++)
	{
		scanf("%d",&f[i]);//N个整数,第i个数表示编号为i的血球的能量值f[i]
	}
	long long min=999999999999,temp=0;
	for(int i=0;i<l;i++)
	{	int route=0;//计算每个点的总伤害 
		for(int j=0;j<n;j++)
		{
			if(f[j]-abs(xq[j]-i)>0)
			{
				route+=f[j]-abs(xq[j]-i);
			}
			else
			{
				route+=0;
			} 
		}
		if(route<min)
		{
			min=route,temp=i;
		}
	}
	printf("%d\n",temp);
	printf("%lld\n",min);
	}
	
	return 0;
 } 

Double click to view unformatted code.


Back to problem 3699