题目链接 为什么会WA第二个点。 主要思路:对每次实验都可以得出一个左闭右开的不等式区间,维护区间左端点最大值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();
}