Difference between r1.1 and the current
@@ -1,3 +1,8 @@
== Status ==
||Problem|| 2488||User||talin0528||
||Memory||3852K||Time||360MS||
||Language||Java||Result||Accepted||
== Source Code ==
{{{import java.util.Scanner;
public class Main{
@@ -43,3 +48,5 @@
}
}
}}}
}
}}}
----
[ACM_ICPC/2011년스터디]
Status ¶
| Problem | 2488 | User | talin0528 |
| Memory | 3852K | Time | 360MS |
| Language | Java | Result | Accepted |
Source Code ¶
import java.util.Scanner;
public class Main{
public static int [][] savePath;
public static int [][] direct = {{-1,-2},{1,-2},{-2,-1},{2,-1},{-2,1},{2,1},{-1,2},{1,2}};
public static void main(String [] args){
Scanner sc = new Scanner(System.in);
int count = sc.nextInt();
for(int i=1; i<=count; i++){
int p = sc.nextInt();
int q = sc.nextInt();
System.out.println("Scenario #"+i+":");
int [][] path = new int[p+1][q+1];
savePath = new int[p*q][2];
if(isPromising(1,1, path,0)){
for(int k=0; k<savePath.length; k++){
System.out.printf("%c%d",savePath[k][1]+64, savePath[k][0]);
}
}else
System.out.print("impossible");
System.out.println("\n");
}
}
private static boolean isPromising(int p, int q, int [][] path, int count){
if(p>=path.length || q>=path[0].length || p<1 || q<1 || path[p][q] == 1)
return false;
path[p][q] = 1;
if(count == savePath.length-1){
savePath[count][0] = p;
savePath[count][1] = q;
return true;
}else{
for(int i=0; i<direct.length; i++){
if(isPromising(p+direct[i][0], q+direct[i][1], path, count+1)){
savePath[count][0] = p;
savePath[count][1] = q;
return true;
}
}
path[p][q] = 0;
return false;
}
}
}










