#include<cstdio>
#include<cstring>
#define MOD 1000000
int main()
{
int n,pow[100010],num[6],lo[100010];
scanf("%d",&n);
pow[0]=1;
for(int i=1;i<=n;i++)
pow[i]=(pow[i-1]*2)%MOD;
scanf("%d%d%d",&num[1],&num[2],&num[3]);
for(int i=1;i<=3;i++)
for(int j=1;j<=num[i];j++)
{
int x;
scanf("%d",&x);
lo[x]=i;
}
int res=0,tem,begin,end;
begin=end=lo[n];
printf("%d\n",lo[n]);
while(n)
{
if(begin!=end)
{
res=(res+pow[n-1])%MOD;
end=tem;
}
n--;
begin=lo[n];
tem=6-begin-end;
}
printf("%d\n",res);
}
poj 1920 汉诺塔移动到某一种指定位置的最小步数
最新推荐文章于 2022-05-15 17:16:34 发布