結果
| 問題 |
No.33 アメーバがたくさん
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-03-12 20:58:50 |
| 言語 | Java (openjdk 23) |
| 結果 |
AC
|
| 実行時間 | 126 ms / 5,000 ms |
| コード長 | 1,222 bytes |
| コンパイル時間 | 3,606 ms |
| コンパイル使用メモリ | 79,228 KB |
| 実行使用メモリ | 54,068 KB |
| 最終ジャッジ日時 | 2024-09-24 15:14:20 |
| 合計ジャッジ時間 | 5,316 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 11 |
ソースコード
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;
public class Main_yukicoder33 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int d = sc.nextInt();
int t = sc.nextInt();
int[] x = new int[n];
Map<Integer, Set<Integer>> hm = new HashMap<>();
for (int i = 0; i < n; i++) {
x[i] = sc.nextInt();
int mod = (x[i] % d + d) % d;
if (hm.containsKey(mod)) {
hm.get(mod).add(x[i]);
} else {
Set<Integer> tmp = new TreeSet<>();
tmp.add(x[i]);
hm.put(mod, tmp);
}
}
long ret = 0;
for (Set<Integer> hs : hm.values()) {
long tmp = 0;
long prev = Long.MIN_VALUE;
for (int e : hs) {
long r = e + (long)d * t;
long l = e - (long)d * t;
if (l > prev) {
tmp++;
} else {
l = prev;
}
tmp += (r - l) / d;
prev = r;
}
ret += tmp;
}
System.out.println(ret);
sc.close();
}
}