游客 Signup | Login
中文 | En

2642 - 摘红苹果

小明爷爷家有棵苹果树,树上高低不一的长了N个苹果。一天,M个小朋友到爷爷家做客,爷爷说:你们每人最多可以摘两个苹果,而且只许伸手摘,不允许借助其它工具,摘下的苹果大家分享。由于小朋友的身高参差不齐,怎样才能使他们摘的苹果总数最多呢?请你计算机小朋友们最多能摘到多少个苹果?

Input

第一行两个整数N,M(N<=100,M<=20),分别表示N个苹果M个小朋友。
第二行N个整数(以空格相隔),分别表示每个苹果的高度。每个苹果的高度不超过160。
第三行M个整数(以空格相隔),分别表示每个小朋友伸手能达到的高度。每个小朋友伸手能达到的高度不超过160。

Output

一个整数。小朋友们最多能摘到的苹果数。

Examples

Input

10 4
110 100 150 90 100 135 160 88 130 140
120 100 110 80

Output

5

Solution C++

#include<bits/stdc++.h>
using namespace std;
int a[110],b[25];
bool cmp(int x,int y){
	return x>y;
}
int main(){
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	   cin>>a[i];
	sort(a+1,a+1+n,cmp);
	for(int i=1;i<=m;i++)
	   cin>>b[i];
	sort(b+1,b+1+n,cmp);
	int k=1;
	int sum=0,t=0;
	for(int i=1;i<=m;i++)
	   for(int j=k;j<=n;j++){
	       if(b[i]>a[j]){
	       	  sum++;
	       	  t++;
		   }
		   if(t==2){
		   	t=0;
		   	k=j+1;
		   	break;
		   	  }
	   }
	 cout<<sum<<endl;
	 return 0;  
}
Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题