第1题 礼物 查看测评数据信息
国庆马上要到了。小明喜欢的礼物有n种分别是:公仔、电子手表、漫画书等。
每种礼物有一件,每种礼物价钱都不一样。小明手头上有 m 元。
小明最多可以买多少件礼物?
输入格式
第一行,两个整数:n,m 1 <= n<=100,1<=m<= 100000。
第二行,n个空格分开的整数(每个整数<=1000),代表每种礼物的价钱。
输出格式
一个整数,小明能买多少件礼物。
输入/输出例子1
输入:
3 100
40 70 50
输出:
2
#include<bits/stdc++.h>
using namespace std;
long long n,m,a[999999],ans,s=0;
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++)cin>>a[i];
sort(a+1,a+1+n);
for(int i=1;i<=n;i++){
ans+=a[i];
if(ans>m)break;
else s++;
}
cout<<s;
return 0;
}
第2题 书架(SSOI2017五) 查看测评数据信息
为了方便同学们查阅资料,程序设计兴趣小组的辅导老师打算将积攒了很多年的n本书放到上课教室的书架上去。
教室的书架是一层一层叠起来的,每一层最多可以放m本书。每一层的高度由放在这层中最高的那本书决定的,如果不放书,则认为这层的高度为0。为了使每个同学能方便地拿到想要的书,书架的总高度应尽可能低。请编程计算将这n本书放在书架上后书架的最小总高度,计算的过程中不考虑书的厚度与书架本身材料的厚度。
输入格式
输入共n+1行。
第1行2个整数n和m (1≤m≤n≤100000) 。
接下来n行,每行1个正整数,分别表示每本书的高度(每本书的高度不超过100)。
输出格式
输出共1行,表示将n本书放入书架后书架的最小总高度。
输入/输出例子1
输入:
3 2
20 10 30
输出:
40
样例解释
【样例解释】
将高度是30和20的两本书放在一层,则这层的高度为30,将高度是10的那本书放在另外一层,则这层的高度为10,则书架的总高度为40,满足最小。
#include<bits/stdc++.h>
using namespace std;
bool cmp(int x,int y){
return x>y;
}
int n,m,a[1000005],s=0;
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+1+n,cmp);
for(int i=1;i<=n;i+=m){
s+=a[i];
}
cout<<s;
return 0;
}
第3题 吃苹果 查看测评数据信息
连小朋友都知道,呆毛王Saber喜欢吃苹果。现在Saber有三箱苹果。第一个箱子里有n1个苹果,第二箱有n2