📄 4317134_ac_0ms_240k.c
字号:
#include <stdio.h>
void sort(int nn)
{ int a[850][8],i,j,k,b[8]={0},n,m,dui[101],total=1,pos[850][4]={0},find=0,rec,in[9];
for (i=1;i<=nn;i++)
{ for (j=0;j<=8;j++)
scanf("%d",&in[j]);
for (j=0;j<8;j++)
a[in[0]][j]=in[j+1];
}
n=-1; m=0; dui[m]=in[0];
while (n<m)
{ n++;
for (i=0;i<8;i++)
{ rec=a[dui[n]][i];
k=i/2*4+1-i;
if (rec && a[rec][k]==dui[n])
{ if (pos[rec][0] || pos[rec][1] || pos[rec][2] || pos[rec][3] || in[0]==rec) continue;
dui[++m]=rec;
for (j=0;j<4;pos[rec][j++]=pos[dui[n]][j]);
k=i/2;
pos[rec][k]+=(i%2==0?1:-1);
if (i%2==0) b[i]=pos[rec][k]>b[i]?pos[rec][k]:b[i];
else b[i]=pos[rec][k]>b[i]?b[i]:pos[rec][k];
total++;
}
else if (rec) {find=1; break;}
}
if (find) break;
}
if (find || total!=nn) printf("Inconsistent\n");
else printf("%d\n",(b[0]-b[1]+1)*(b[2]-b[3]+1)*(b[4]-b[5]+1)*(b[6]-b[7]+1));
}
main ()
{ int num,n;
scanf("%d",&num);
for (;num>0;num--)
{ scanf("%d",&n);
sort(n);
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -