摘陶陶(JSU-ZJJ)

题目描述

话说去年苹果们被陶陶摘下来后都很生气,于是就用最先进的克隆技术把陶陶克隆了好多份> .< 然后把他们挂在树上,准备摘取。 摘取的规则是,一个苹果只能摘一个陶陶,且只能在它所能摘到的高度以下的陶陶,陶陶高度为0时,不能摘取,如果摘不到的话只能灰溜溜的走开了> .< 给出苹果数目及每个苹果可以够到的高度和各个陶陶的高度,求苹果们都摘完后剩下多少个陶陶……
输入
第一行为两个数,分别为苹果的数量n和陶陶的数量m(n,m< =2000) 以下的n行,分别为各个苹果能够到的最大高度。 再接下来的m行,分别为各个陶陶的高度。 高度均不高于300。 当然了,摘取的顺序按照输入的“苹果够到的最大高度”的顺序来摘。
输出
输出仅有一个数,是剩下的陶陶的数量
样例输入
5 5
9
10
2
3
1
6
7
8
9
10
样例输出
3

分析:

本题需要注意的是,陶陶的高度为0的时候是不能摘取的。


#include"stdio.h"
int main()
{
    int a[3000],b[3000];
    int i,j,k,n,m,t,count;
    while(~scanf("%d%d",&n,&m))
    {  count=m;
        for(i=0;i<n;i++)
            scanf("%d",&a[i]);
        for(i=0;i<n-1;i++)
            for(j=i;j<n;j++)
                if(a[i]<a[j])
        {
            t=a[i];a[i]=a[j];a[j]=t;
        }
        for(i=0;i<m;i++)
            scanf("%d",&b[i]);
        for(i=0;i<m-1;i++)
            for(j=i;j<m;j++)
               if(b[i]<b[j])
        {
            t=b[i];b[i]=b[j];b[j]=t;
        }
        for(i=0;i<n;i++)
        {
            for(j=0;j<m;j++)
            {
                if(a[i]>b[j]&&b[j]!=0)
                {
                    count--;
                    b[j]=30000;
                    break;
                }
            }
        }
    printf("%d\n",count);
    }
}

猜你喜欢

转载自blog.csdn.net/qq_43506138/article/details/84556941