新的Hack数据可能评测有误??
查看原帖
新的Hack数据可能评测有误??
661595
a2lyaXNhbWUgbWFyaXNh楼主2022/9/11 15:58

我听说这题加了Hack,就重新写了一遍:

#include<bits/stdc++.h>
using namespace std;
#define int long long
int A,B,N;
int c[500010];
int ans;
inline int read() {
	register int x=0;
	int f=1;
	register char ch=getchar();
	while(ch<'0'||ch>'9') {
		if(ch='-')f=-1;
		ch=getchar();
	}
	while(ch>='0'&&ch<='9') {
		x=(x<<3)+(x<<1)+(ch^48);
		ch=getchar();
	}
	return f*x;
}
inline void write(int x) {
	if(x<0) {
		putchar('-');
		x=-x;
	}
	if(x>9)write(x/10);
	putchar(x%10+'0');
}

inline bool check(int m){
	int sum=0,pre=0;
	for(int i=0;i<=A;i++){
		if(c[i]-pre>=m)pre=c[i];
		else sum++;
	}
	return sum<=B?1:0;
}
signed main(){
	N=read();
	A=read();
	B=read();
	for(int i=0;i<A;i++){
		c[i]=read();
	} 
	c[A]=N;
	int l=0,r=N,mid;
	while(l<=r){
		mid=(l+r)/2;
		if(check(mid)){
			ans=mid;
			l=mid+1;
		}else r=mid-1;
	}
	write(ans);
	return 0;
} 

结果Hack没对。

可我在本地测试是正确的2呀?

@chen_zhe

@小粉兔

2022/9/11 15:58
加载中...