求助站外水题
  • 板块灌水区
  • 楼主_QrSn_
  • 当前回复10
  • 已保存回复10
  • 发布时间2022/5/7 16:50
  • 上次更新2023/10/28 01:59:11
查看原帖
求助站外水题
511253
_QrSn_楼主2022/5/7 16:50

貌似是一道简单贪心?

但是我们没学过,就用了老师的另一种算法

把所有的邮票都买出去,再去买回来

最后对不作出买卖的情况进行特判

一共2个点,50分

代码:

#include<bits/stdc++.h>
using namespace std;
int n,m,a[52],b[52],sum,ans;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++)
    {
    	cin>>a[i];
    }
    cin>>m;
    for(int i=1;i<=m;i++)
    {
    	cin>>b[i];
    	sum+=a[b[i]];
    	//cout<<a[b[i]]<<endl;
    }
    //cout<<sum;
    sort(a+1,a+n+1);
    int i=1;
    while(sum-a[i]>0)
    {
    	ans++;
    	sum-=a[i];
        //cout<<i<<" "<<ans<<" "<<sum<<" "<<a[i]<<endl;
		i++;
    }
    if(m>=ans)cout<<m;
    else cout<<ans;
    return 0;
}
2022/5/7 16:50
加载中...