学校少先队大队部举行了庆祝活动,其中有一项活动是摘彩球。大队辅导员在学校礼堂里高低不一地挂了N个彩球,请M位少先队员到礼堂里摘彩球。辅导员说:你们每人最多可以摘两个彩球,而且只许站着伸手摘,不允许借助其它工具,摘下的彩球归大家共有。由于各少先队员的身高参差不齐,怎样才能使他们摘的彩球总数最多呢?请你计算少先队员们最多能摘到多少个彩球?
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m,ans=0,a[100],r[100],j=1;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
for(int i=1;i<=m;i++) scanf("%d",&r[i]);
sort(a+1,a+n+1);
sort(r+1,r+m+1);
for(int i=1;i<=m;i++){
if(j<=n&&r[i]>=a[j]){
ans++;
j++;
}
if(j<=n &r[i]>=a[j]){
ans++;
j++;
}
}
printf("%d\n",ans);
return 0;
}
1073

被折叠的 条评论
为什么被折叠?



