ABC-136
A
解法
B
解法
C
https://atcoder.jp/contests/abc136/tasks/abc136_c
#愚直
C
int main(void) { ll n; scanf("%lld", &n);
ll h[n+1]; rep(i, 0, n) scanf("%lld", &h[i]); h[n]=10000000000+1; h[n+1]=10000000000+1;
char ans[5] = "Yes";
sh flg = -1; rep(i,0,n) { if (h[i]==h[i+1]+1) { if (flg==-1) flg *= -1; else if (flg == 1) { strcpy(ans, "No"); break; } } else if (h[i]>=(h[i+1]+2)) { strcpy(ans, "No"); break; } else if (h[i]<h[i+1]) { if (flg==1) flg *= -1; } } printf("%s\n", ans);
return 0;}
解法
前から見ていき、次の段が今より小さいならば即終了、小さいならば、それ以降にまた以上下がるならばその時点で終了、段でも上昇すればリセット。という条件で回していけば、題意を満たすことができる。
D
解法
E