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