洛谷 P1505 陶陶摘苹果 啊呸 。。苹果摘陶陶

题目背景

根据2005年的Noip普及组第一题衍生出的一题。

但是有一点点的恶搞成分在里面.....

题目描述

话说去年苹果们被陶陶摘下来后都很生气,于是就用最先进的克隆技术把陶陶克隆了好多份>.<然后把他们挂在树上,准备摘取。

摘取的规则是,一个苹果只能摘一个陶陶,且只能在它所能摘到的高度以下的[b]最高的[/b]陶陶,如果摘不到的话只能灰溜溜的走开了>.<给出苹果数目及每个苹果可以够到的高度和各个陶陶的高度,求苹果们都摘完后剩下多少个陶陶……

输入输出格式

输入格式:

 

第一行为两个数,分别为苹果的数量n和陶陶的数量m(n,m<=2000)

以下的n行,分别为各个苹果能够到的最大高度。

再接下来的m行,分别为各个陶陶的高度。

高度均不高于300。

当然了,摘取的顺序按照输入的“苹果够到的最大高度”的顺序来摘。

 

输出格式:

 

输出仅有一个数,是剩下的陶陶的数量

 

输入输出样例

输入样例#1:
5 5
9
10
2
3
1
6
7
8
9
10
输出样例#1:
3

题目很简单,样例特别水,但是有点坑。。。
高度为0的苹果不能摘
代码如下
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int apple[100000];
int taotao[1000000];
int cnt,n,m;
bool cmp(int x,int y)
{
    return x>y;
}
int main()
{
    cin>>n>>m;
    int now=n;
    for(int i=1;i<=n;i++) cin>>apple[i];
    for(int i=1;i<=m;i++) cin>>taotao[i];
    sort(taotao+1,taotao+m+1,cmp);
    //sort(apple+1,apple+n+1,cmp);
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            if(apple[i]>taotao[j]&&taotao[j]>0)
            {
                taotao[j]=-1;
                break;
            }
    for(int i=1;i<=m;i++)
        if(taotao[i]!=-1) cnt++;
    cout<<cnt<<endl;
    return 0;
}

 

posted @ 2017-04-14 20:26  Alex丶Baker  阅读(917)  评论(0编辑  收藏  举报