View Code of Problem 3699

#include<iostream>
#include<string>
#include<cmath>
#include<algorithm>
#include<map>
#include<vector>
#include<sstream> 
using namespace std;
int main(){
	int l,n;
	while(scanf("%d %d",&l,&n)!=EOF){
		vector<int>k,f;
	for(int i=0;i<n;i++){//血球坐标 
		int temp;
		cin>>temp;
		k.push_back(temp);
	}
	for(int i=0;i<n;i++){//血球能量值 
		int temp;
		cin>>temp;
		f.push_back(temp);
	}
	int min=9999999,x=-1;
	for(int i=0;i<=l;i++){//计算每个坐标受到的伤害,从小开始 
		int temp=0;
		for(int j=0;j<n;j++){
			int sh=f[j]-abs(k[j]-i);//f[i]-s
			if(sh<0)
				sh=0;
			temp+=sh;
		}
		if(temp<min){
			min=temp;
			x=i;
		}
		//cout<<min<<endl;
	}
	cout<<x<<endl;
	cout<<min<<endl;
	}
	
        return 0;
}

Double click to view unformatted code.


Back to problem 3699