比赛 普及组2016模拟练习4 评测结果 AAWAWAW
题目名称 最小乘车费用 最终得分 57
用户昵称 (=@__@=) 运行时间 0.009 s
代码语言 C++ 内存使用 0.18 MiB
提交时间 2016-11-17 20:27:59
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<string>
#include<algorithm>
using namespace std;
class noo{
public:
	int x,gl;
	double pj;
}a[15];
int n,s=0,ss=0;
void init()
{
	for(int i=1;i<=10;i++)
	{
		cin>>a[i].x;
		a[i].pj=a[i].x/double(i);
		a[i].gl=int(i);
	}
}
int hhh(noo a,noo b)
{
	if(a.pj>=b.pj)
		return 0;
	if(a.pj<b.pj)
		return 1;
}
int main()
{
	freopen("busses.in","r",stdin);
	freopen("busses.out","w",stdout);
	init();
	cin>>n;
	sort(a+1,a+11,hhh);
	int i=1;
	while(n>=0)
	{
		if(n>=a[i].gl&&ss<=n)
		{
			s=s+a[i].x;
			ss=ss+a[i].gl;
		}
		else
			for(int i=2;i<=10;i++)
				if(a[i].gl<=n)
				{
					s=s+a[i].x;
					ss=ss+a[i].gl;
					break;
				}
		n=n-a[i].gl;
	}
	cout<<s;
	return 0;
}