题目链接:http://codeforces.com/problemset/problem/387/B点击打开链接
题目描述:
第一排是乔治想得到的数字,第二排是乔治已经拥有的数字,乔治已经有的数字可以变小来得到他想要的数,问至少要往已经拥有数列中添加几个数能得到乔治所有想要的数字?
解题思路:
难点是英语啊!英语。题本身,两个数组各自sort一下,然后设一个 i 变量和一个 j 变量,从头扫一遍就好了。我写的代码比较渣,肯定不是最简练的,但反正能做出来。
AC代码:
#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;
int a[3050],b[3050];
int n,m;
int main()
{
cin>>n>>m;
int i,j;
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<m;i++)
scanf("%d",&b[i]);
sort(a,a+n);
sort(b,b+m);
for(i=0,j=0;;)
{
if(a[i]<=b[j])
{
i++;j++;
}
else
{
j++;
}
if(i>=n)
{
cout<<0<<endl;
break;
}
if(j>=m)
{
cout<<n-i<<endl;
break;
}
}
return 0;
}
AC截图: