题解 | To Fill or Not to Fill

#include<iostream>
#include<algorithm>
using namespace std;
#define ll long long
const int maxn = 10000.0;
const int dist = 30005;
double jia[dist];
struct fuil{
	double num;
	double dis;
}fu[maxn];
bool cmp(fuil f1,fuil f2){
	return f1.num<f2.num;
}
int main(){
	int cm,d,davg,n;
	while(cin>>cm>>d>>davg>>n){
		for(int i=0;i<n;i++){
			cin>>fu[i].num>>fu[i].dis;
		}
		sort(fu,fu+n,cmp);
		for(int i=0;i<=d;i++)
		jia[i] = -1;
		for(int i=0;i<n;i++){
			for(int j=fu[i].dis,ge = 0;j<=d && ge<cm*davg;j++,ge++){
				if(jia[j]==-1)jia[j] = fu[i].num/(double)davg;
			}
		}
		double ans = 0;
		double flag = -1;
		for(int i=0;i<d;i++){
			if(jia[i]==-1){
				flag = i;
				break;
			}
			ans+=jia[i];
		}
		if(flag!=-1){
			printf("The maximum travel distance = %.2f\n",flag);
			continue;
		}
		printf("%.2f\n",ans);
	}
}

全部评论

相关推荐

在看牛客的社畜很积极:身高体重那一行信息去掉,学校那一行的信息放上面,找半天都没找到你是哪个学校什么专业的
点赞 评论 收藏
分享
ResourceUt...:楼主有自己的垃圾箱,公司也有自己的人才库
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务