結果
| 問題 | 
                            No.33 アメーバがたくさん
                             | 
                    
| コンテスト | |
| ユーザー | 
                             norioc
                         | 
                    
| 提出日時 | 2024-08-29 08:23:56 | 
| 言語 | PyPy3  (7.3.15)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 40 ms / 5,000 ms | 
| コード長 | 530 bytes | 
| コンパイル時間 | 579 ms | 
| コンパイル使用メモリ | 82,528 KB | 
| 実行使用メモリ | 55,184 KB | 
| 最終ジャッジ日時 | 2024-08-29 08:23:58 | 
| 合計ジャッジ時間 | 1,764 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge1 / judge5 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 11 | 
ソースコード
from collections import defaultdict
def f(xs: list):
    l = xs[0] - T
    r = xs[0] + T
    res = 0
    for i in range(1, len(xs)):
        if l <= xs[i] - T <= r:
            r = xs[i] + T
        else:
            res += r - l + 1
            l = xs[i] - T
            r = xs[i] + T
    res += r - l + 1
    return res
N, D, T = map(int, input().split())
X = list(map(int, input().split()))
X.sort()
d = defaultdict(list)
for x in X:
    d[x % D].append(x // D)
ans = 0
for xs in d.values():
    ans += f(xs)
print(ans)
            
            
            
        
            
norioc