結果
| 問題 |
No.905 Sorted?
|
| コンテスト | |
| ユーザー |
AT274_
|
| 提出日時 | 2019-10-11 22:13:42 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 343 ms / 2,000 ms |
| コード長 | 836 bytes |
| コンパイル時間 | 320 ms |
| コンパイル使用メモリ | 82,104 KB |
| 実行使用メモリ | 105,844 KB |
| 最終ジャッジ日時 | 2024-11-25 07:50:21 |
| 合計ジャッジ時間 | 5,768 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 23 |
ソースコード
from itertools import accumulate
N = int(input())
A = list(map(int, input().split()))
UP = [0] * N
DOWN = [0] * N
for i, a in enumerate(A[1:], start=1):
if A[i - 1] > A[i]:
UP[i] = UP[i - 1] + 1
else:
UP[i] = UP[i - 1]
if A[i - 1] < A[i]:
DOWN[i] = DOWN[i - 1] + 1
else:
DOWN[i] = DOWN[i - 1]
UP_acc = [0] + list(accumulate(UP))
DOWN_acc = [0] + list(accumulate(DOWN))
Q = int(input())
for q in range(Q):
ans = []
l, r = map(int, input().split())
l, r = l + 1, r + 1
u_base = UP[l - 1]
if UP_acc[r] - UP_acc[l - 1] == (r - l + 1) * u_base:
ans.append(1)
else:
ans.append(0)
d_base = DOWN[l - 1]
if DOWN_acc[r] - DOWN_acc[l - 1] == (r - l + 1) * d_base:
ans.append(1)
else:
ans.append(0)
print(*ans, sep=' ')
AT274_