摘柿子


试题描述
    秋天是收获的季节,首师大附中校园里的柿子熟了,信息技术社团初一年级的大虾们得到学校老师的允许去摘一棵树上的柿子。这棵小树上有高低不一的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;
}






  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值