50pts求hack,找不到错误
查看原帖
50pts求hack,找不到错误
285617
黑影洞人楼主2022/7/16 22:47
#include<cstdio>
#include<algorithm>
#include<cmath>
#define N 1919810
#define int long long
using namespace std;
int dis,m,d,n,cnt,mk,ps;
int x[N];
bool flg;
signed main(){
	scanf("%lld%lld%lld",&m,&d,&n);
	for(int i=1;i<=n;i++)scanf("%lld",&x[i]);
	sort(x+1,x+n+1);
	dis=m;
	for(int i=1;i<=n;i++)if(x[i]>=m-d)ps=i;
	for(int i=n;i>=1;i--){
		if(d>=m-dis){
			dis-=x[i]-d+m-dis;
			cnt++;
			if(i==ps)continue;
		}else{
			if(flg==0){
				dis-=x[ps]+d-m+dis;
				cnt++;
				flg=1;i--;
				if(dis<=0) return printf("%lld",cnt),0;
				continue;
			}
			dis-=x[i]+d-m+dis;
			cnt++;
		}
		if(dis<=0) return printf("%lld",cnt),0;
	}
	return puts("0"),0;
}


2022/7/16 22:47
加载中...