超空间,求原因
明明什么只有几个全局变量,而且没有调用函数,为什么MLE
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
short n,num[10],used,x=1,a[10],c,i,ji;
void dfs()
{
st:
if(x == n + 1)
{
c=i;
for(i = 1;i <= n;i ++)
cout<<num[i]<<" ";
puts("");
i=c;
if(ji == 1) goto one1;
else if(ji == 2) goto two1;
else if(ji == 3) goto thr1;
else if(ji == 4) goto fou1;
else if(ji == 5) goto fiv1;
else if(ji == 6) goto six1;
else if(ji == 7) goto seiv1;
else if(ji == 8) goto eig1;
else goto nin1;
}
one:
if(x == n + 1) goto st;
for(i = 1;i <= n;i ++)
{
if((used&(1<<i))) continue;
used |= 1<<i;
num[x] = i;
a[x]=i;x++;ji=1;
goto two;
one1:
x--;i=a[x];
used ^= 1<<i;
}
return;
two:
if(x == n + 1) goto st;
for(i = 1;i <= n;i ++)
{
if((used&(1<<i))) continue;
used |= 1<<i;
num[x] = i;
a[x]=i;x++;ji=2;
goto thr;
two1:
x--;i=a[x];
used ^= 1<<i;
}
goto one1;
return;
thr:
if(x == n + 1) goto st;
for(i = 1;i <= n;i ++)
{
if((used&(1<<i))) continue;
used |= 1<<i;
num[x] = i;
a[x]=i;x++;ji=3;
goto fou;
thr1:
x--;i=a[x];
used ^= 1<<i;
}
goto two1;
return;
fou:
if(x == n + 1) goto st;
for(i = 1;i <= n;i ++)
{
if((used&(1<<i))) continue;
used |= 1<<i;
num[x] = i;
a[x]=i;x++;ji=4;
goto fiv;
fou1:
x--;i=a[x];
used ^= 1<<i;
}
goto thr1;
return;
fiv:
if(x == n + 1) goto st;
for(i = 1;i <= n;i ++)
{
if((used&(1<<i))) continue;
used |= 1<<i;
num[x] = i;
a[x]=i;x++;ji=5;
goto six;
fiv1:
x--;i=a[x];
used ^= 1<<i;
}
goto fou1;
return;
six:
if(x == n + 1) goto st;
for(i = 1;i <= n;i ++)
{
if((used&(1<<i))) continue;
used |= 1<<i;
num[x] = i;
a[x]=i;x++;ji=6;
goto seiv;
six1:
x--;i=a[x];
used ^= 1<<i;
}
goto fiv1;
return;
seiv:
if(x == n + 1) goto st;
for(i = 1;i <= n;i ++)
{
if((used&(1<<i))) continue;
used |= 1<<i;
num[x] = i;
a[x]=i;x++;ji=7;
goto eig;
seiv1:
x--;i=a[x];
used ^= 1<<i;
}
goto six1;
return;
eig:
if(x == n + 1) goto st;
for(i = 1;i <= n;i ++)
{
if((used&(1<<i))) continue;
used |= 1<<i;
num[x] = i;
a[x]=i;x++;ji=8;
goto nin;
eig1:
x--;i=a[x];
used ^= 1<<i;
}
goto seiv1;
return;
nin:
if(x == n + 1) goto st;
for(i = 1;i <= n;i ++)
{
if((used&(1<<i))) continue;
used |= 1<<i;
num[x] = i;
a[x]=i;x++;ji=9;
if(x == n + 1) goto st;
nin1:
x--;i=a[x];
used ^= 1<<i;
}
goto eig1;
}
int main()
{
cin>>n;
dfs();
}