比赛 普及组2016模拟练习4 评测结果 AAWAWAW
题目名称 最小乘车费用 最终得分 57
用户昵称 zero 运行时间 0.002 s
代码语言 C++ 内存使用 0.31 MiB
提交时间 2016-11-17 20:38:04
显示代码纯文本
#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;
}