WA 30分求调

题目描述

假期将至,你是一位很有爱心的家长,想要在节假日的时候给你的孩子们一些小蛋糕。但是,每个孩子最多只能给一块蛋糕。对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的蛋糕的最小尺寸;并且每块蛋糕 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个蛋糕j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。

输入格式

第一行一个n和m,表示孩子数和蛋糕数
接下来一行,输入n个孩子的胃口值g[i]。
最后一行输入m个蛋糕的尺寸s[i]。

输出格式

能够满足的孩子数

样例

Input 1

3 2 1 2 3 1 1

Output 1

1

样例解释

Example Input 1:
3 2
1 2 3
1 1
Example Output 1: 1

数据范围

1<=n,m<=100
1<=g[i],s[i]<=1000

#include<bits/stdc++.h>
using namespace std;
int main(){
  long long n,m,a[101],b[101],p=0,ans=0;
  cin>>n;
  for(int i=0;i<n;i++)cin>>a[i];
  for(int i=0;i<m;i++)cin>>b[i];
  sort(a,a+n);sort(b,b+m);
  for(int i=0;i<n;i++){
    while(b[p]<a[i]&&p<n)p++;
    if(p==n)break;
    ans++;
  }cout<<ans;
  return 0;
}
1 个赞

break的条件再看看?