duoxida的数字游戏

duoxida的数字游戏

Submit Code ] [ Top 20 Runs ]
Acceteped : 93 Submit : 296
Time Limit : 1000 MS Memory Limit : 65536 KB
 

Description

题目描述

duoxida很喜欢玩数字游戏,某天无聊的时候,他决定一个人玩数字游戏。他黑板上写下了一行总共有n个数,然后对其重复进行一个操作: 找到从左到右第k个的数x,在数字序列的最右边增加一个x,删除最左边的第一个数字。 duoxida很想知道知道多少次操作后,这个序列就变得完全一样。

输入

数据的第一行为一个整数t,1<=t<=10,表示测试用例的个数。每组样例的第一行是n,k,(1≤k≤n≤1000)。 接下来一行有n个整数。

输出

每个用例输出一行,即操作次数,如果这个序列无法变得完全一样,输出"-1"。

样例输入

2 
3 2 
3 1 1 
3 1 
3 1 1

样例输出

1 
-1
 
#include<iostream> #include<algorithm> #include<cstdio> using namespace std; int a[1100]; int main() { int t; scanf("%d",&t); while(t--){ int n,k; scanf("%d%d",&n,&k); k--; for(int i=0;i<n;i++){ scanf("%d",&a[i]); } if(n==1) cout<<"0"<<endl; else{ int flag=-1; for(int i=n-2;i>=0;i--){ if(a[i]!=a[n-1]){ flag=i; break; } } if(k<=flag){ cout<<"-1"<<endl; } else cout<<flag+1<<endl; } } return 0; } 

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值