宣贯
  • 板块P1658 购物
  • 楼主nikomelo11
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/11/28 17:43
  • 上次更新2024/11/28 20:09:11
查看原帖
宣贯
1591145
nikomelo11楼主2024/11/28 17:43

这样是90分

#include<bits/stdc++.h>
using namespace std;
const int N=11;
int n,m,a[N],ans,s=2;//sum
int p;
int main(){
	cin>>m>>n;
	for(int i=1;i<=n;i++) cin>>a[i];
	sort(a+1,a+n+1);
	if(a[1]!=1){cout<<-1;return 0;}
	while(s<m){
		for(int i=n;i>=1;i--) if(a[i]<s){p=i;break;}
		ans++,s+=a[p];
	}
	cout<<ans<<"\n";
	return 0;
}

这样是100分

#include<bits/stdc++.h>
using namespace std;
const int N=11;
int n,m,a[N],ans,s;//sum
int p;
int main(){
	cin>>m>>n;
	for(int i=1;i<=n;i++) cin>>a[i];
	sort(a+1,a+n+1);
	if(a[1]!=1){cout<<-1;return 0;}
	while(s<m){
		for(int i=n;i>=1;i--) if(a[i]<s+2){p=i;break;}
		ans++,s+=a[p];
	}
	cout<<ans<<"\n";
	return 0;
}

WHYYYYYYYYY?

(大号被禁言了)

2024/11/28 17:43
加载中...