题解 CF1119A 【Ilya and a Colorful Walk】

此题就是:给你一个数组,让你找出两个不同的元素,并让它们的下标差距最大。

思路:从2到n,如果与1不同,记录距离,与原数比较,取大。 从1到n-1,如果与n不同,记录距离,与原数比较,取大。

AC代码(你们最想要的)

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,a[300010],i,ans=0;
    cin>>n;
    for(i=1;i<=n;i++)cin>>a[i];//输入
    for(i=n;i>1;i--){//从21到n循环求解
        if(a[1]!=a[i]){
            ans=max(ans,i-1);//取大
        }
    }
    for(i=1;i<n;i++){//从n-1到n循环求解
        if(a[n]!=a[i]){
            ans=max(ans,n-i);//取大
        }
    }
    cout<<ans;
    return 0;//华丽丽的结束
}

管理员求过

猜你喜欢

转载自www.cnblogs.com/jbc666/p/10936530.html