社区讨论

求各位大神帮看为何TLE 急

P2421[NOI2002] 荒岛野人参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@mi4hn07c
此快照首次捕获于
2025/11/18 19:26
4 个月前
此快照最后确认于
2025/11/18 19:26
4 个月前
查看原帖
CPP
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int a[100000000];
int main(){
    int ans=0,c,n,i,f=1,t;
    cin>>n>>c;
    for(i=1;i<=n;++i)
      scanf("%d",&a[i]);
    t=n/2;
    while((f!=n)&&(a[n]-a[f]>=c)){
        if(a[t]-a[f]==c){
            if(a[t+1]==a[t]){
                f++; ans++; continue;
            }else{
                ans++; f++; t=(n-f)/2; continue;
            }
        }
        if(a[t]-a[f]>c){
            if(a[t-1]-a[f]<c){
                f++; t=(n-f)/2; continue;
            }else{
                t=(t-f)/2; continue;
            }
        }
        if(a[t]-a[f]<c){
            if(a[t+1]-a[f]>c){
                f++; t=(n-f)/2; continue;
            }else{
                t=(n-f)/2; continue;
            }
        }
    }
    cout<<ans;
    return 0;
}

回复

1 条回复,欢迎继续交流。

正在加载回复...