分析: 当k比较小时候 每次进行暴力模拟求出在第k次石头滚落的位置
但是,当k相当大时候,模拟会超时
如果能注意到当有一块石头能回收的时候,接下来所有石头都能被回收,所以在超过平均复杂度时近似为O(1)
总复杂度为o(n^2)
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 1005;
int a[N];
signed main()
{
int t;
cin >> t;
while (t --)
{
memset(a , 0 , sizeof a);
int n , k;
cin >> n >> k;
for (int i = 1; i <= n; i ++ ) cin >> a[i];
//int j = k;
int d = 0;
int f;
for (int i = 1; i <= k; i ++ )
{
f = 0;
for (int j = 1; j <= n; j ++ )
{
if (a[j] < a[j + 1])
{
a[j] ++;
d = j;
break;
}
if (j == n) f = 1;
}
if (f)
{
cout << -1 << endl;
break;
}
}
if (!f) cout << d << endl;
}
return 0;
}