题解 CF1486A【Shifting Stacks】
概述
题号 | 难度 | \(AC\)时间及记录 |
---|---|---|
\(\texttt{CF1486A}\) | \(\texttt{洛谷难度:暂无评定}\) | \(\texttt{On 2021/02/20}\) |
解析
这是一道简单题。
题意不难理解。
我们考虑,最少的情况就是前面的 \(h_1~h_i\) 构成了:
一个以 \(1\) 为首项,以 \(1\) 为公差的等差数列。
用一下等差数列的求和公式,
如果当前前缀和比这个和大,
或是相等,
显然是可行的。
然后你就得到了 \(AC\) 。
代码
#include<bits/stdc++.h>
#define BetterIO ios::sync_with_stdio(false)
using namespace std;
#define int long long
int Array[101];
signed main(void)
{
BetterIO;
register int Case;
cin>>Case;
while(Case--)
{
register int Total;
cin>>Total;
register int i;
for(i=1;i<=Total;i++)
{
cin>>Array[i];
}
register int Sum;
Sum=0;
register bool Flag;
Flag=true;
for(i=1;i<=Total;i++)
{
Sum+=Array[i];
if((i-1)*i/2>Sum)
{
Flag=false;
break;
}
}
if(Flag)
{
cout<<"Yes"<<endl;
}
else
{
cout<<"No"<<endl;
}
}
return 0;
}
不要妄图追上西坠的太阳,而是要在黎明前就等着它!