摘彩球

摘彩球
难度级别:A; 运行时间限制:1000ms; 运行空间限制:51200KB; 代码长度限制:2000000B
试题描述
 今年是国庆60周年,学校少先队大队部举行了庆祝活动,其中有一项活动是摘彩球。大队辅导员在学校礼堂里高低不一地挂了N个彩球,请M位少先队员到礼堂里摘彩球。辅导员说:你们每人最多可以摘两个彩球,而且只许站着伸手摘,不允许借助其它工具,摘下的彩球归大家共有。由于各少先队员的身高参差不齐,怎样才能使他们摘的彩球总数最多呢?请你计算少先队员们最多能摘到多少个彩球?
输入
第一行有二个整数N 和M(N<=100,M<=20),两数间用空格隔开。
第二行有 N个整数(各数间以空格相隔),分别表示每个彩球的高度。
第三行有M个整数(各数间以空格相隔),分别表示每个少先队员伸手能达到的高度。
输出
仅一行,有一个整数,表示最多能摘到的彩球数。
输入示例
10  4
110 100 150 90 100 135 160 88 130 140
120 100 110 80
输出示例
5
其他说明
绍兴市第七届少儿信息学竞赛复赛试题(三)

  提交网址:http://marcool.net/home/problem.htm?problemID=6

 

#include <cstdio>
#include <algorithm>
using  namespace std;
int main(){
     int i,n,m,ans= 0,a[ 100],r[ 100];
    scanf( " %d%d ",&n,&m);
     for(i= 0;i<n;i++)scanf( " %d ",&a[i]);
     for(i= 0;i<m;i++)scanf( " %d ",&r[i]);
    sort(a,a+n);sort(r,r+m);
     int j= 0;
     for(i= 0;i<m;i++){
         if(r[i]>=a[j]){j++; ans++;}
         if(r[i]>=a[j]){j++; ans++;}
    }
    printf( " %d\n ",ans);
     return  0;
}
 

转载于:https://www.cnblogs.com/qilinart/articles/2993393.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值