| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
why WA?I don't know why. I got AC at UVa and TJU
Source
Problem Id:1224 User Id:rouder
Memory:64K Time:46MS
Language:G++ Result:Wrong Answer
* Source
#include<stdio.h>
int n;
int a[12][3];
char b[12][5][5];
int found;
int v[12];
int v2[5][5];
int sum[5][5];
int op[5]={2, 3, 0, 1};
void f1(int x, int y)
{
if(y==4){x++; y=1;}
if(x==4)
{
int i, j;
for(i=1;i<=3;i++)
{
for(j=1;j<=3;j++) printf(" %s ", b[v2[i][j]][sum[i][j]]);
printf("\n");
for(j=1;j<=3;j++) printf("%s %s %s ", b[v2[i][j]][(sum[i][j]+3)%4], a[v2[i][j]], b[v2[i][j]][(sum[i][j]+1)%4]);
printf("\n");
for(j=1;j<=3;j++) printf(" %s ", b[v2[i][j]][(sum[i][j]+2)%4]);
printf("\n\n");
}
found=1;
return;
}
int i, k;
int p1, p2;
for(i=1;i<=9;i++)
{
if(v[i]==1) continue;
p1=v2[x][y-1];
p2=v2[x-1][y];
for(k=0;k<=3;k++)
{
if(y>1)
{
if(b[p1][(sum[x][y-1]+1)%4][0]!=b[i][(k+3)%4][0] || b[p1][(sum[x][y-1]+1)%4][1]+b[i][(k+3)%4][1]!='L'+'R')
continue;
}
if(x>1)
{
if(b[p2][(sum[x-1][y]+2)%4][0]!=b[i][k][0] || b[p2][(sum[x-1][y]+2)%4][1]+b[i][k][1]!='L'+'R')
continue;
}
v[i]=1;
v2[x][y]=i; sum[x][y]=k;
f1(x, y+1);
v[i]=0;
if(found==1) return;
}
}
}
int main()
{
int t;
int i;
while(1)
{
scanf("%d", &t);
if(t==0) break;
for(i=1;i<=9;i++)
{
scanf("%s %s %s %s %s", a[i], b[i][0], b[i][1], b[i][2], b[i][3]);
v[i]=0;
}
found=0;
printf("%d:\n", t);
f1(1, 1);
if(found==0) printf("No Solution\n");
printf("\n");
}
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator