結果
| 問題 |
No.240 ナイト散歩
|
| ユーザー |
threepipes_s
|
| 提出日時 | 2015-07-10 22:38:46 |
| 言語 | Java (openjdk 23) |
| 結果 |
AC
|
| 実行時間 | 62 ms / 2,000 ms |
| コード長 | 3,896 bytes |
| コンパイル時間 | 2,751 ms |
| コンパイル使用メモリ | 81,452 KB |
| 実行使用メモリ | 50,612 KB |
| 最終ジャッジ日時 | 2024-10-07 20:50:10 |
| 合計ジャッジ時間 | 6,000 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 30 |
ソースコード
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.Queue;
public class Main {
static HashSet<String> set = new HashSet<String>();
public static void main(String[] args) throws NumberFormatException,
IOException {
Solve solve = new Solve();
solve.solve();
}
}
class Solve{
ContestScanner in;
Solve() throws FileNotFoundException{
in = new ContestScanner();
}
final static int[] dx = {-2, -2, -1, -1, 1, 1, 2, 2};
final static int[] dy = {-1, 1, -2, 2, -2, 2, -1, 1};
void solve() throws IOException{
int gx = in.nextInt();
int gy = in.nextInt();
final int d = dx.length;
HashSet<Pos> set = new HashSet<>();
Queue<Pos> qu = new LinkedList<>();
qu.add(new Pos(0, 0, 0));
while(!qu.isEmpty()){
Pos p = qu.poll();
if(set.contains(p)) continue;
if(p.x == gx && p.y == gy){
System.out.println("YES");
return;
}
if(p.turn==3) continue;
set.add(p);
for(int i=0; i<d; i++){
qu.add(new Pos(p.x+dx[i], p.y+dy[i], p.turn+1));
}
}
System.out.println("NO");
return;
}
}
class Pos{
int x, y, turn;
long id;
Pos(int x, int y, int turn){
this.x = x;
this.y = y;
this.turn = turn;
}
@Override
public boolean equals(Object obj) {
return x==((Pos)obj).x && y==((Pos)obj).y;
}
@Override
public int hashCode() {
return (int)(((long)y*(long)1e9+x)%1000000007);
}
}
class Timer{
long time;
public void set(){
time = System.currentTimeMillis();
}
public long stop(){
return System.currentTimeMillis()-time;
}
}
class Node{
int id;
ArrayList<Node> edge = new ArrayList<Node>();
ArrayList<Integer> sp = new ArrayList<Integer>();
public Node(int id) {
this.id = id;
}
public void createEdge(Node node, int sp) {
edge.add(node);
this.sp.add(sp);
}
}
class MyComp implements Comparator<int[]> {
final int idx;
public MyComp(int idx){
this.idx = idx;
}
public int compare(int[] a, int[] b) {
return a[idx] - b[idx];
}
}
class Reverse implements Comparator<Integer> {
public int compare(Integer arg0, Integer arg1) {
return arg1 - arg0;
}
}
class ContestWriter {
private PrintWriter out;
public ContestWriter(String filename) throws IOException {
out = new PrintWriter(new BufferedWriter(new FileWriter(filename)));
}
public ContestWriter() throws IOException {
out = new PrintWriter(System.out);
}
public void println(String str) {
out.println(str);
}
public void println(Object obj) {
out.println(obj);
}
public void print(String str) {
out.print(str);
}
public void print(Object obj) {
out.print(obj);
}
public void close() {
out.close();
}
}
class ContestScanner {
private BufferedReader reader;
private String[] line;
private int idx;
public ContestScanner() throws FileNotFoundException {
reader = new BufferedReader(new InputStreamReader(System.in));
}
public ContestScanner(String filename) throws FileNotFoundException {
reader = new BufferedReader(new InputStreamReader(new FileInputStream(
filename)));
}
public String nextToken() throws IOException {
if (line == null || line.length <= idx) {
line = reader.readLine().trim().split(" ");
idx = 0;
}
return line[idx++];
}
public String readLine() throws IOException{
return reader.readLine();
}
public long nextLong() throws IOException, NumberFormatException {
return Long.parseLong(nextToken());
}
public int nextInt() throws NumberFormatException, IOException {
return (int) nextLong();
}
public double nextDouble() throws NumberFormatException, IOException {
return Double.parseDouble(nextToken());
}
}
threepipes_s