题意:
按顺序给出一排鱼的大小,大鱼可以吃掉左或右的小鱼,吃掉后自身变大 1 .
问鱼缸里是否有一条鱼经过不断的左右吞吃把其他所有鱼吃掉。(其他鱼不动)
如果有 输出任意一个即可。
题解:
只要有不同的必定有答案
比较俩数字寻找最大值即可
code:
#include<bits/stdc++.h>
//#pragma GCC optimize(2)
#define rep(i,a,n) for (int i=a;i<=n;i++)//i为循环变量,a为初始值,n为界限值,递增
#define per(i,a,n) for (int i=a;i>=n;i--)//i为循环变量, a为初始值,n为界限值,递减。
using namespace std;
#define IOS ios_base::sync_with_stdio(0); cin.tie(0);cout.tie(0)
#define ll long long
#define ull unsigned long long
#define ld long double
#define PII pair<int,int>
#define debug(a) cout <<#a << "=" << a << endl;
const int INF = 0x3f3f3f3f;
const ll LINF = 1ll<<60;
const int mod=1e9+7;
inline int read(){int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}return x*f;}
int main(){
int t;
cin>>t;
while(t--){
int n,a[300010];
memset(a,0,sizeof(a));
cin>>n;
rep(i,1,n) {
cin>>a[i];
}
int maxn=a[1];
int pos=1,f=0;
rep(i,2,n){
if(a[i]!=a[i-1]){
f=1;
if(a[i]>a[i-1]&&a[i]>=maxn)
pos=i,maxn=a[i];
else if(a[i-1]>a[i]&&a[i-1]>=maxn)
pos=i-1,maxn=a[i-1];
}
}
if(f&&n!=1){
cout<<pos<<endl;
}
else cout<<-1<<endl;
}
return 0;
}