欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

摘柿子

发布时间:2025/6/15 编程问答 50 豆豆
生活随笔 收集整理的这篇文章主要介绍了 摘柿子 小编觉得挺不错的,现在分享给大家,帮大家做个参考.


试题描述
秋天是收获的季节,首师大附中校园里的柿子熟了,信息技术社团初一年级的大虾们得到学校老师的允许去摘一棵树上的柿子。这棵小树上有高低不一的N个柿子, M位同学来摘。杨老师要求:每人最多可以摘两个,而且只许站着伸手摘,不允许借助其它工具,摘下的柿子归大家共有。由于各同学们的身高参差不齐,怎样才能使他们摘的柿子总数最多呢?请你初一同学们最多能摘到的柿子个数。
输入
第一行有二个整数N 和M(N<=100,M<=20),两数间用空格隔开。
第二行有 N个整数(各数间以空格相隔),分别表示每个柿子的高度。
第三行有M个整数,分别表示每个同学伸手能达到的高度。
输出
仅一行,有一个整数,表示最多能摘到的柿子数。
输入示例
10 4
160 170 190 185 172 195 160 158 178 184
160 180 170 180
输出示例
6
其他说明
所有数据都在0到300范围内。



// // main.cpp // taketomato // // Created judyge on 15-5-2. // Copyright (c) 2015年 judyge. All rights reserved. //#include <iostream> using namespace std; int main(int argc, const char * argv[]) {int N;int M;cin>>N;cin>>M;int n[100];int m[20];for(int i=0;i<N;i++){cin>>n[i];}for(int i=0;i<M;i++){cin>>m[i];}for(int i=0;i<N;i++){for(int j=i+1;j<N;j++){if(n[j]>n[i]){int tmp=n[i];n[i]=n[j];n[j]=tmp;}}}for(int i=0;i<M;i++){for(int j=i+1;j<M;j++){if(m[j]>m[i]){int tmp=m[i];m[i]=m[j];m[j]=tmp;}}}static int sum=0;static int j=0;for(int i=0;i<M;i++){for(j;j<N;){if(n[j]<=m[i]){sum+=2;j+=2;}continue;}}cout<<sum;return 0; }





总结

以上是生活随笔为你收集整理的摘柿子的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。