https://www.luogu.com.cn/problem/P1379
#include<bits/stdc++.h>
using namespace std;
string c,s="123804765";
int x,ans,step;
bool vis[10][10][10][10][10][10][10][10];
void dfs(int x){
vis[c[1]-'0'][c[2]-'0'][c[3]-'0'][c[4]-'0'][c[5]-'0'][c[6]-'0'][c[7]-'0'][c[8]-'0']=1;
if(c==s){ans=min(ans,step);return;}
if(x==0){
step++;
swap(c[0],c[1]);
if(!vis[c[1]-'0'][c[2]-'0'][c[3]-'0'][c[4]-'0'][c[5]-'0'][c[6]-'0'][c[7]-'0'][c[8]-'0']) dfs(1);
swap(c[0],c[1]);
swap(c[0],c[3]);
if(!vis[c[1]-'0'][c[2]-'0'][c[3]-'0'][c[4]-'0'][c[5]-'0'][c[6]-'0'][c[7]-'0'][c[8]-'0']) dfs(1);
swap(c[0],c[3]);
step--;
}
else if(x==1){
step++;
swap(c[1],c[0]);
if(!vis[c[1]-'0'][c[2]-'0'][c[3]-'0'][c[4]-'0'][c[5]-'0'][c[6]-'0'][c[7]-'0'][c[8]-'0']) dfs(0);
swap(c[1],c[0]);
swap(c[1],c[4]);
if(!vis[c[1]-'0'][c[2]-'0'][c[3]-'0'][c[4]-'0'][c[5]-'0'][c[6]-'0'][c[7]-'0'][c[8]-'0']) dfs(4);
swap(c[1],c[4]);
swap(c[1],c[3]);
if(!vis[c[1]-'0'][c[2]-'0'][c[3]-'0'][c[4]-'0'][c[5]-'0'][c[6]-'0'][c[7]-'0'][c[8]-'0']) dfs(3);
swap(c[1],c[3]);
step--;
}
else if(x==2){
step++;
swap(c[2],c[1]);
if(!vis[c[1]-'0'][c[2]-'0'][c[3]-'0'][c[4]-'0'][c[5]-'0'][c[6]-'0'][c[7]-'0'][c[8]-'0']) dfs(1);
swap(c[2],c[1]);
swap(c[2],c[5]);
if(!vis[c[1]-'0'][c[2]-'0'][c[3]-'0'][c[4]-'0'][c[5]-'0'][c[6]-'0'][c[7]-'0'][c[8]-'0']) dfs(5);
swap(c[2],c[4]);
step--;
}
else if(x==3){
step++;
swap(c[3],c[0]);
if(!vis[c[1]-'0'][c[2]-'0'][c[3]-'0'][c[4]-'0'][c[5]-'0'][c[6]-'0'][c[7]-'0'][c[8]-'0']) dfs(0);
swap(c[3],c[0]);
swap(c[3],c[4]);
if(!vis[c[1]-'0'][c[2]-'0'][c[3]-'0'][c[4]-'0'][c[5]-'0'][c[6]-'0'][c[7]-'0'][c[8]-'0']) dfs(4);
swap(c[3],c[4]);
swap(c[3],c[7]);
if(!vis[c[1]-'0'][c[2]-'0'][c[3]-'0'][c[4]-'0'][c[5]-'0'][c[6]-'0'][c[7]-'0'][c[8]-'0']) dfs(7);
swap(c[3],c[7]);
step--;
}
else if(x==4){
step++;
swap(c[4],c[1]);
if(!vis[c[1]-'0'][c[2]-'0'][c[3]-'0'][c[4]-'0'][c[5]-'0'][c[6]-'0'][c[7]-'0'][c[8]-'0']) dfs(1);
swap(c[4],c[1]);
swap(c[4],c[3]);
if(!vis[c[1]-'0'][c[2]-'0'][c[3]-'0'][c[4]-'0'][c[5]-'0'][c[6]-'0'][c[7]-'0'][c[8]-'0']) dfs(3);
swap(c[4],c[3]);
swap(c[4],c[5]);
if(!vis[c[1]-'0'][c[2]-'0'][c[3]-'0'][c[4]-'0'][c[5]-'0'][c[6]-'0'][c[7]-'0'][c[8]-'0']) dfs(5);
swap(c[4],c[5]);
swap(c[4],c[7]);
if(!vis[c[1]-'0'][c[2]-'0'][c[3]-'0'][c[4]-'0'][c[5]-'0'][c[6]-'0'][c[7]-'0'][c[8]-'0']) dfs(7);
swap(c[4],c[7]);
step--;
}
else if(x==5){
step++;
swap(c[5],c[2]);
if(!vis[c[1]-'0'][c[2]-'0'][c[3]-'0'][c[4]-'0'][c[5]-'0'][c[6]-'0'][c[7]-'0'][c[8]-'0']) dfs(2);
swap(c[5],c[2]);
swap(c[5],c[4]);
if(!vis[c[1]-'0'][c[2]-'0'][c[3]-'0'][c[4]-'0'][c[5]-'0'][c[6]-'0'][c[7]-'0'][c[8]-'0']) dfs(4);
swap(c[5],c[4]);
swap(c[5],c[8]);
if(!vis[c[1]-'0'][c[2]-'0'][c[3]-'0'][c[4]-'0'][c[5]-'0'][c[6]-'0'][c[7]-'0'][c[8]-'0']) dfs(8);
swap(c[5],c[8]);
step--;
}
else if(x==6){
step++;
swap(c[6],c[3]);
if(!vis[c[1]-'0'][c[2]-'0'][c[3]-'0'][c[4]-'0'][c[5]-'0'][c[6]-'0'][c[7]-'0'][c[8]-'0']) dfs(3);
swap(c[6],c[3]);
swap(c[6],c[7]);
if(!vis[c[1]-'0'][c[2]-'0'][c[3]-'0'][c[4]-'0'][c[5]-'0'][c[6]-'0'][c[7]-'0'][c[8]-'0']) dfs(7);
swap(c[6],c[7]);
step--;
}
else if(x==7){
step++;
swap(c[7],c[4]);
if(!vis[c[1]-'0'][c[2]-'0'][c[3]-'0'][c[4]-'0'][c[5]-'0'][c[6]-'0'][c[7]-'0'][c[8]-'0']) dfs(4);
swap(c[7],c[4]);
swap(c[7],c[6]);
if(!vis[c[1]-'0'][c[2]-'0'][c[3]-'0'][c[4]-'0'][c[5]-'0'][c[6]-'0'][c[7]-'0'][c[8]-'0']) dfs(6);
swap(c[7],c[6]);
swap(c[7],c[8]);
if(!vis[c[1]-'0'][c[2]-'0'][c[3]-'0'][c[4]-'0'][c[5]-'0'][c[6]-'0'][c[7]-'0'][c[8]-'0']) dfs(8);
swap(c[7],c[8]);
step--;
}
else {
step++;
swap(c[8],c[5]);
if(!vis[c[1]-'0'][c[2]-'0'][c[3]-'0'][c[4]-'0'][c[5]-'0'][c[6]-'0'][c[7]-'0'][c[8]-'0']) dfs(5);
swap(c[8],c[5]);
swap(c[8],c[7]);
if(!vis[c[1]-'0'][c[2]-'0'][c[3]-'0'][c[4]-'0'][c[5]-'0'][c[6]-'0'][c[7]-'0'][c[8]-'0']) dfs(7);
swap(c[8],c[7]);
step--;
}
}
int main(){
for(int i=0;i<8;i++){
cin>>c[i];
if(c[i]=='0') x=i;
}
dfs(x);
cout<<ans<<endl;
return 0;
}