我们观察到一个性质:如果一块石头滚进了垃圾桶,那么它后面滚下来的石头也必定会进入垃圾桶。
这是显然的,因为这块石头没有产生任何贡献,所以不会发生改变。
这样我们就可以暴力枚举每一块石头知道结束或者进入垃圾桶。当石头进入垃圾桶,代表输出 -1
。
复杂度是 \(O(t\times n\times h_i)\),可以过此题。
#include<bits/stdc++.h>
using namespace std;
int t,n,k;
int a[201];
inline int read()
{
char C=getchar();
int F=1,ANS=0;
while (C<'0'||C>'9')
{
if (C=='-') F=-1;
C=getchar();
}
while (C>='0'&&C<='9')
{
ANS=ANS*10+C-'0';
C=getchar();
}
return F*ANS;
}
int main()
{
t=read();
while (t--)
{
n=read(),k=read();
for (int i=1;i<=n;i++) a[i]=read();
int ans=-1;
for (int i=1;i<=k;i++)
{
for (int j=1;j<n;j++)
{
if (a[j]<a[j+1])
{
a[j]++;
ans=j;
goto fff;
}
}
cout << -1 << endl;
goto eee;
fff:;
}
cout << ans << endl;
eee:;
}
return 0;
}