More actions
imported>joojis No edit summary |
imported>joojis No edit summary |
||
| Line 3: | Line 3: | ||
=== Source Code === | === Source Code === | ||
#include <stdio.h> | #include <stdio.h> | ||
#include <memory.h> | |||
int A[30][30]; | |||
int B[30][2]; | |||
int P, Q; | |||
short Flag; | |||
void R(int n, int p, int q) | |||
{ | |||
if(Flag || 1>p || p>P || 1>q || q>Q || A[p][q]){ | |||
return; | |||
}else if(n==P*Q){ | |||
B[n][0]=p; | |||
B[n][1]=q; | |||
Flag=1; | |||
return; | |||
}else{ | |||
B[n][0]=p; | |||
B[n][1]=q; | |||
A[p][q]=n; | |||
R(n+1, p-1, q-2); | |||
R(n+1, p+1, q-2); | |||
R(n+1, p-2, q-1); | |||
R(n+1, p+2, q-1); | |||
R(n+1, p-2, q+1); | |||
R(n+1, p+2, q+1); | |||
R(n+1, p-1, q+2); | |||
R(n+1, p+1, q+2); | |||
A[p][q]=0; | |||
return; | |||
} | |||
} | |||
int main() | int main() | ||
{ | { | ||
int n, | int n, i, j; | ||
scanf("%d", &n); | scanf("%d", &n); | ||
for(i=1;i<=n;i++){ | |||
for(i=1; i<=n; i++){ | scanf("%d %d", &P, &Q); | ||
scanf("%d %d", & | |||
Flag=0; | |||
memset(A, 0, sizeof(A)); | |||
R(1, 1, 1); | |||
printf("Scenario #%d:\n", i); | printf("Scenario #%d:\n", i); | ||
if(Flag){ | |||
for(j=1; j<=P*Q; j++){ | |||
printf("%c%c", B[j][1]+'A'-1, B[j][0]+'0'); | |||
} | |||
}else{ | |||
printf("impossible"); | |||
} | } | ||
puts(""); | puts("\n"); | ||
} | } | ||
return 0; | return 0; | ||
} | } | ||
/// | /// C | ||
=== ... === | === ... === | ||
Revision as of 19:48, 26 June 2011
Describe AKnight'sJourney here
Source Code
#include <stdio.h>
#include <memory.h>
int A[30][30];
int B[30][2];
int P, Q;
short Flag;
void R(int n, int p, int q)
{
if(Flag || 1>p || p>P || 1>q || q>Q || A[p][q]){
return;
}else if(n==P*Q){
B[n][0]=p;
B[n][1]=q;
Flag=1;
return;
}else{
B[n][0]=p;
B[n][1]=q;
A[p][q]=n;
R(n+1, p-1, q-2);
R(n+1, p+1, q-2);
R(n+1, p-2, q-1);
R(n+1, p+2, q-1);
R(n+1, p-2, q+1);
R(n+1, p+2, q+1);
R(n+1, p-1, q+2);
R(n+1, p+1, q+2);
A[p][q]=0;
return;
}
}
int main()
{
int n, i, j;
scanf("%d", &n);
for(i=1;i<=n;i++){
scanf("%d %d", &P, &Q);
Flag=0;
memset(A, 0, sizeof(A));
R(1, 1, 1);
printf("Scenario #%d:\n", i);
if(Flag){
for(j=1; j<=P*Q; j++){
printf("%c%c", B[j][1]+'A'-1, B[j][0]+'0');
}
}else{
printf("impossible");
}
puts("\n");
}
return 0;
}
/// C
...
- 음... 어디가 틀렸을까요 -정진경