为什么80分
查看原帖
为什么80分
577683
Neil_Seniorious楼主2022/12/28 18:24
#include<bits/stdc++.h>
#define int long long
using namespace std;

inline int read(){
	short f=1;int x=0;char c=getchar();
	while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
	while(c>='0'&&c<='9'){x=(x<<3)+(x<<1)+(c^48);c=getchar();}
	return x*f;
}

const int maxn=2e6,maxm=2e9;

int n,m;
int a[maxn+5];

signed main(){
	n=read(),m=read();
	for(int i=1;i<=n;i++){
		a[i]=read();
	}
	a[n+1]=maxm;
	sort(a+1,a+n+2);
	if(a[1]!=1) return printf("No answer!!!"),0;
	int sum=0,ans=0;
	for(int i=1;i<=n;i++){
		while(sum<a[i+1]-1){
			sum+=a[i];
			ans++;
			if(sum>=m) return printf("%lld",ans),0;
		}
	}
	return printf("%lld",ans+1),0;
}

https://www.luogu.com.cn/record/list?pid=P2001&user=577683

2022/12/28 18:24
加载中...