水题但是帮忙看看吧...

#include <iostream>
using namespace std;
int t[305],a[2005];
int n,m;
void INPUT(){
cin>>n>>m;
int temp;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=m;i++){
cin>>temp;
t[temp]++;
}
return;
}
int PICK(int pos){
int reach=a[pos]-1;
for(int i=reach-1;i>0;i--){
if(t[i]>0){
t[i]--;
return 1;
}
}
return 0;
}
int main()
{
INPUT();
int sum=0;
for(int i=1;i<=n;i++)sum+=PICK(i);
cout<<m-sum<<endl;
return 0;
}

只过了三个点

1 条评论

  • @ 2016-08-13 14:43:57

    不用这么麻烦......
    直接sort+双重循环......

  • 1

信息

ID
1291
难度
6
分类
贪心 点击显示
标签
(无)
递交数
9723
已通过
2330
通过率
24%
被复制
16
上传者