結果
| 問題 |
No.340 雪の足跡
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-01-30 04:00:29 |
| 言語 | Java (openjdk 23) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 2,455 bytes |
| コンパイル時間 | 5,111 ms |
| コンパイル使用メモリ | 90,852 KB |
| 実行使用メモリ | 97,792 KB |
| 最終ジャッジ日時 | 2024-09-21 19:00:02 |
| 合計ジャッジ時間 | 8,901 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 5 |
| other | AC * 8 WA * 1 TLE * 1 -- * 22 |
ソースコード
// まずTLEとなるでしょう・・・
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.Map;
import java.util.Queue;
import java.util.Scanner;
import java.util.Set;
public class Main {
public static void main(String... args) throws Exception {
Scanner sc = new Scanner(System.in);
int w = sc.nextInt();
int h = sc.nextInt();
int n = sc.nextInt();
Map<Integer, Set<Integer>> map = new HashMap<>();
while (sc.hasNextInt()) {
int m = sc.nextInt();
int b = sc.nextInt();
for (int i = 0; i < m; i++) {
int bTo = sc.nextInt();
int offset;
if (bTo >= b + w) {
offset = w;
} else if (bTo > b) {
offset = 1;
} else if (bTo <= b - w) {
offset = -w;
} else {
offset = -1;
}
while (b != bTo) {
map.computeIfAbsent(b, x -> new HashSet());
map.get(b).add(b + offset);
map.computeIfAbsent(b + offset, x -> new HashSet());
map.get(b + offset).add(b);
b += offset;
}
}
}
Queue<Point> queue = new LinkedList<>();
queue.add(new Point(0, 0));
Set<Integer> visited = new HashSet<>();
visited.add(0);
Point point;
while ((point = queue.poll()) != null) {
Set<Integer> indexesTo = map.get(point.index);
if (indexesTo != null) {
for (Integer indexTo : indexesTo) {
if (indexTo == w * h - 1) {
System.out.println(point.move + 1);
System.exit(0);
}
if (!visited.contains(indexTo)) {
visited.add(indexTo);
queue.add(new Point(indexTo, point.move + 1));
}
}
}
}
System.out.println("Odekakedekinai..");
}
}
class Point {
final int index;
final int move;
Point(int index, int move) {
this.index = index;
this.move = move;
}
@Override
public String toString() {
return String.format("index: %d, move: %d", index, move);
}
}