求助:Hack数据错了
查看原帖
求助:Hack数据错了
661595
a2lyaXNhbWUgbWFyaXNh楼主2022/9/12 09:43

本地测Hack是对的,浴谷上就WA了QAQ

#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;
}
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=1;i<=A+1;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=1;i<=A;i++)
        c[i]=read();
    c[A+1]=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;
    }
    cout<<ans;
    return 0;
} 
2022/9/12 09:43
加载中...