結果
問題 |
No.1268 Fruit Rush 2
|
ユーザー |
![]() |
提出日時 | 2020-09-20 00:20:16 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 515 ms / 2,000 ms |
コード長 | 862 bytes |
コンパイル時間 | 84 ms |
コンパイル使用メモリ | 12,672 KB |
実行使用メモリ | 32,896 KB |
最終ジャッジ日時 | 2024-06-23 22:33:37 |
合計ジャッジ時間 | 10,027 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 33 |
ソースコード
n = int(input()) a = list(map(int, input().split())) odd = [] even = [] for i in range(n): if a[i] % 2 == 1: odd.append(a[i]) else: even.append(a[i]) odd = sorted(odd) even = sorted(even) odd.append(2e18 - 1) even.append(2e18) oddacc = [1] * len(odd) for i in range(1, len(odd)): j = len(odd) - i - 1 if odd[j] + 2 == odd[j + 1]: oddacc[j] += oddacc[j + 1] evenacc = [1] * len(even) for i in range(1, len(even)): j = len(even) - i - 1 if even[j] + 2 == even[j + 1]: evenacc[j] += evenacc[j + 1] ans = n it = 0 for i in range(len(odd) - 1): while odd[i] >= even[it]: it += 1 if odd[i] + 1 == even[it]: ans += evenacc[it] it = 0 for i in range(len(even) - 1): while even[i] >= odd[it]: it += 1 if even[i] + 1 == odd[it]: ans += oddacc[it] print(ans)