結果
| 問題 | No.3705 ビバ子とマカロン (Bibako and Macaron) |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-09-07 15:41:09 |
| 言語 | Python3 (3.14.7 + numpy 2.5.2 + scipy 1.18.0 + ACL) |
| 結果 |
AC
不安定
|
| 実行時間 | 2,267 ms / 3,000 ms |
| + 188µs | |
| コード長 | 1,026 bytes |
| 記録 | |
| コンパイル時間 | 59 ms |
| コンパイル使用メモリ | 15,232 KB |
| 実行使用メモリ | 81,288 KB |
| 最終ジャッジ日時 | 2026-09-10 15:31:34 |
| 合計ジャッジ時間 | 65,188 ms |
|
ジャッジサーバーID (参考情報) |
judge1_0 / judge2_0 |
(要ログイン)
| サブタスク | 配点 | 結果 |
|---|---|---|
| 小課題1 | 10 % | AC * 5 |
| 小課題2 | 30 % | AC * 8 |
| 小課題3 | 60 % | AC * 15 |
| 合計 | 100 点 |
ソースコード
import sys
from collections import Counter
def solve():
N = int(input())
A = list(map(int, input().split(' ')))
c = Counter(A)
# pre1[i]: 味 1~i のうち、1個以上存在する種類の数
# pre2[i]: 味 1~i のうち、2個以上存在する種類の数
pre1 = [0] * (N + 1)
pre2 = [0] * (N + 1)
for i in range(1, N + 1):
pre1[i] = pre1[i - 1] + (1 if c[i] >= 1 else 0)
pre2[i] = pre2[i - 1] + (1 if c[i] >= 2 else 0)
Q = int(input())
for i in range(Q):
l1, r1, l2, r2 = map(int, input().split(' '))
if (pre1[r1] - pre1[l1 - 1]) != (r1 - l1 + 1):
print("No")
continue
if (pre1[r2] - pre1[l2 - 1]) != (r2 - l2 + 1):
print("No")
continue
ml = max(l1, l2)
mr = min(r1, r2)
if ml <= mr:
if (pre2[mr] - pre2[ml - 1]) != (mr - ml + 1):
print("No")
continue
print("Yes")
if __name__ == '__main__':
solve()