题解
2025-08-04 19:08:25
发布于:广东
5阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
const int maxn=505;
int m,n;
bool pd[maxn];
struct number
{
int t,w;//时间和钱数
}p[maxn];
bool cmp(number x,number y)
{
if(x.w!=y.w)
{
return x.w>y.w;
}
return x.t<y.t;
}
int main()
{
cin>>m>>n;
for(int i=1;i<=n;i++)
{
cin>>p[i].t;
}
for(int i=1;i<=n;i++)
{
cin>>p[i].w;
}
sort(p+1,p+n+1,cmp);
for(int i=1;i<=n;i++)
{
bool flag=true;
for(int j=p[i].t;j>=1;j--)
{
if(!pd[j])
{
pd[j]=true;
flag=false;
break;
}
}
if(flag)
{
m-=p[i].w;
}
}
cout<<m;
return 0;
}
这里空空如也
有帮助,赞一个