求助
  • 板块学术版
  • 楼主wanttoac
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/7/17 23:34
  • 上次更新2024/7/18 09:02:06
查看原帖
求助
1258100
wanttoac楼主2024/7/17 23:34

题目链接\newline 为什么会WA第二个点。\newline 主要思路:对每次实验都可以得出一个左闭右开的不等式区间,维护区间左端点最大值l和右端点最小值r,如果最后l<=r-1,则输出l,否则输出False Hypothesis

#include<bits/stdc++.h>
using namespace std;
#define int long long
int a[1000007];
void solve(){
    int e,l=0,r=LONG_MAX;
    scanf("%lld",&e);
    for(int i=0;i<e;i++){
        int n,m,sum=0;
        scanf("%lld%lld",&n,&m);
        for(int j=0;j<n;j++)scanf("%lld",&a[j]);
        if(n==m){
            r=min(r,a[0]);
        }
        else if(m==0){
            for(int j=0;j<n;j++)sum+=a[j];
            l=max(l,sum);
        }
        else{
            for(int j=0;j<n;j++){
            sum+=a[j];
            if(j==n-1-m){
                l=max(l,sum);
                r=min(r,sum+a[j+1]);
                break;
            }
        }
        }
    }
    if(l<=r-1)printf("%lld\n",l);
    else printf("False Hypothesis\n");
}
signed main(){
    int t;
    scanf("%lld",&t);
    while(t--)solve();
}
2024/7/17 23:34
加载中...