这道题可以说是很简单的,但我就是想不出来,脑子迷糊了,很简单的一道暴力题
思路:暴力循环(因为山有100座)O(n2)可做;对每个石头遍历,遇到过不去的就山高度加一,然后从下一个石头开始,如果遇到可以通过全部山,就标记为1
代码如下:
#include<iostream>
using namespace std;
const int maxn=1e4;
int a[maxn];
int main()
{
int t;
cin>>t;
while(t--)
{
int flag=0;
int d;
int n,k;
cin>>n>>k;
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=1;i<=k;i++)
{
for(int j=1;j<=n;j++)
{
if(a[j]<a[j+1]&&j<n)
{
a[j]++;
d=j;
break;
}
if(j==n) flag=1;
}
if(flag==1) break;
}
if(flag==1) cout<<"-1"<<endl;
else cout<<d<<endl;
}
return 0;
}
原文:https://www.cnblogs.com/ql2013/p/14386191.html