逆天狗屎贪心55pts
查看原帖
逆天狗屎贪心55pts
565890
封禁用户楼主2024/11/30 20:09
#include<bits/stdc++.h>
using namespace std;
int cost[100001],sp[1000001],b[1000001];
int main(){
	int n,k;
	cin>>k>>n;
	int cnt=0,num=0;
	for(int i=1;i<=k;i++){
		cin>>cost[i];
		cnt+=cost[i];
	}
	for(int i=1;i<=n;i++){
		cin>>sp[i];
		num+=sp[i];
	}
	if(cnt<num){
		cout<<-1;
		return 0;
	}
	sort(cost+1,cost+k+1);
//	for(int i=1;i<=n;i++){
//		cout<<cost[i]<<' ';
//	}
	int sum=0,kv=1;
	for(int i=1;i<=n;i++){
		sum+=sp[i];
		if(sum<=cost[kv]&&sum+sp[i+1]>cost[kv]||i==n){
			sum=0;
			cost[kv]=0;
			kv++;
		}	
	}
	int ans=0;
	for(int i=1;i<=k;i++){
		ans+=cost[i];
	}
	cout<<ans;
  return 0;
}
2024/11/30 20:09
加载中...