CF222A Shooshuns and Sequence 题解

分析

这题是一个很水的题,就是对一个序列有 \(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;
}
posted @ 2023-11-19 16:47  merlinkkk  阅读(37)  评论(0)    收藏  举报