解题思路
这是一道语法题……
先排序,然后输出第二大的数的位置就行了。
当然,也会有坑,题目没说每个数都不一样,所以要特判一下……
代码
#include<bits/stdc++.h>
using namespace std;int n;
struct node{int id,d;
}a[200001];
bool cmp(node x,node y)
{if(x.d==y.d)return x.id<y.id;return x.d>y.d;
}
int main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>n;for(int i=1;i<=n;i++){cin>>a[i].d;a[i].id=i;}sort(a+1,a+n+1,cmp);for(int i=2;i<=n;i++){if(a[i].d!=a[i-1].d){cout<<a[i].id;return 0;}}
}