拼多多2018校招内推编程题
六一儿童节,老师带了很多好吃的巧克力到幼儿园。
每块巧克力j的重量为w[j],对于每个小朋友i,当他分到的巧克力大小达到h[i] (即w[j]>=h[i]),他才会上去表演节目。
老师的目标是将巧克力分发给孩子们,使得最多的小孩上台表演。
可以保证每个w[i]> 0且不能将多块巧克力分给一个孩子或将一块分给多个孩子。
输入格式
第一行:n,表示小朋友的个数
第二行:n个整数,表示h数组元素
第三行:m,表示巧克力的个数
第四行:m个整数,表示巧克力的重量
n,m等所有数据均小于100
输出格式
上台表演学生人数
输入样例
3
2 3 2
2
3 1
输出样例
1
没啥思路,看到题目数据量小,直接暴力了…
求大神指点
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int main()
{
int n,m,counter=0;
scanf("%d",&n);
int i,j,h[n+1],v[n+1]={0};
for (i=1;i<=n;i++)
{
scanf("%d",&h[i]);v[i]=1;
}
scanf("%d",&m);
int w[m+1];
for (i=1;i<=m;i++)
scanf("%d",&w[i]);
sort(w+1,w+m+1);sort(h+1,h+n+1);
for (i=1;i<=m;i++)
{
for (j=1;j<=n;j++)
{
if (v[j]==1)
if (w[i]>=h[j])
{
v[j]=0;
counter++;
break;
}
}
}
printf("%d",counter);
return 0;
}