1 条题解
-
2
题目翻译:找一个区间使得区间最大值大于区间和。
容易发现一个规律:当一个区间全是正数时,那区间和绝对大于区间最大值。而当区间有负数且长度为二时,区间和绝对小于于区间最大值。
所以只要在数组中,两个两个判断一下有没有负数就行。
特殊情况:当时,无论如何区间最大值都等于区间和,所以直接输出
NO#include<bits/stdc++.h> using namespace std; int main(){ int t; cin>>t; while(t--){ int n; cin>>n; int a[100100]={}; for(int i=0;i<n;i++) cin>>a[i]; if(n==1) cout<<"NO\n"; else{ bool f=0; for(int i=0;i<n-1;i++){ if(a[i]<0&&a[i+1]<0){ f=1; break; } } if(f)cout<<"YES\n"; else cout<<"NO\n"; } } }
- 1
信息
- ID
- 38
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 2
- 标签
- 递交数
- 5
- 已通过
- 3
- 上传者