CF222A Shooshuns and Sequence 题解

发布时间 2023-11-19 16:54:50作者: merlinkkk

分析

这题是一个很水的题,就是对一个序列有 $2$ 种操作方法,一种是对第 $K$ 个数以前的数的第一个进行删除,另一个则是在整个序列后添加这第 $K$ 个数,使得整个序列为同一个数字,显然,后者是无效操作,则只需要判断第 $K$ 个数以后有无与第 $K$ 个不同的数,有则无解,反之有解。若有解,然后再对前面的数进行删除至全部都为第 $K$ 个数为止。

代码

#include<bits/stdc++.h>
using namespace std;
const int N=1e5;
int a[N];
int main()
{
	int n,k;
	cin>>n>>k;
	for(int i=1;i<=n;i++) cin>>a[i];
	for(int i=k;i<=n-1;i++)
	{
		if(a[i]!=a[i+1])
		{
			cout<<-1;
			return 0;
		}
	}
	for(int i=k-1;i>=1;i--)
	{
		if(a[i]!=a[k])
		{
			cout<<i;
			return 0;
		}
	}
	cout<<0;
	return 0;
}