(以“分类:贪心 ==摘要== {{信息题|Amr and Music|http://acm.hust.edu.cn/vjudge/contest/view.action?cid{{=}}70536#problem/C|1|100|输出内容错误|1|time=2015...”为内容创建页面)
 
代码: space
 
第11行: 第11行:
 
{{折叠|507A.cpp代码已折叠
 
{{折叠|507A.cpp代码已折叠
 
|<pre>
 
|<pre>
#include <iostream>
+
#include<iostream>
 
#include<cstdio>
 
#include<cstdio>
 
#include<algorithm>
 
#include<algorithm>

2015年2月25日 (三) 19:03的最后版本

摘要

题目链接 难度等级 完成状态 完成分数 最后编辑时间 失误原因(初次提交分数)
Amr and Music ★☆☆☆☆ 答案正确 100 2015-02-23 13:02:35 输出内容错误(1)

题意

学习n种乐器每一种需要a_i天,问v天内最多能学习哪几种乐器。

题解

排序,用时最少的先学即可。注意要求输出的是id不是天数。

代码

507A.cpp代码已折叠
展开折叠内容
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstdlib>
#define eps 1e+5
using namespace std;
class ins
{
public:
    int id,a;
    friend bool operator <(const ins &a,const ins&b){return a.a<b.a;}
} a[10010]={};
int n,k,sum=0;
int main()
{
    cin>>n>>k;
    for(int i=1;i<=n;++i)
    {
        cin>>a[i].a;
        a[i].id=i;
    }
    sort(a+1,a+n+1);
    int end=0,haveEnd=0;
    for(int i=1;i<=n;++i)
    {
        sum+=a[i].a;
        if(sum>k)
        {
            end=i-1;
            haveEnd=1;
            break;
        }
    }
    if(!haveEnd)end=n;
    cout<<end<<endl;
    for(int i=1;i<=end;++i)
        cout<<a[i].id<<" ";
    return 0;
}

著作权声明[编辑]

关于[编辑]