9.21网易笔试 : C++开发工程师
case:10%
#include<bits/stdc++.h>
using namespace std;
int main()
{
int T;
cin>>T
while(T--)
{
int n,m;
for(int i=0;i<n;i++)
cin>>arr[i];
int cur=m+arr[0];
for(int i=1,j=0;i<n;i++,j++)
{
if((arr[i]-j>1))
cur+=(arr[i]-j-1);
else if((arr[i]-j)<1)
cur-=(j+1-arr[i])
}
if(cur>0) // 这部分的判断应该放到上面的循环内,如果放在外面,可能会存在
cout<<"YES"<<endl; //前面操作时把cur值用完了(为负,此时已出错),后面arr[i]很大时
using namespace std;
int main()
{
int T;
cin>>T
while(T--)
{
int n,m;
for(int i=0;i<n;i++)
cin>>arr[i];
int cur=m+arr[0];
for(int i=1,j=0;i<n;i++,j++)
{
if((arr[i]-j>1))
cur+=(arr[i]-j-1);
else if((arr[i]-j)<1)
cur-=(j+1-arr[i])
}
if(cur>0) // 这部分的判断应该放到上面的循环内,如果放在外面,可能会存在
cout<<"YES"<<endl; //前面操作时把cur值用完了(为负,此时已出错),后面arr[i]很大时
else //可以将cur增大为正值...
cout<<"NO"<<endl;
}
return 0;
}
cout<<"NO"<<endl;
}
return 0;
}