Language: C

#include <iostream>
#include <string.h>
#include <queue>
#include <algorithm>
#include <cstdio>
using namespace std;
int r[2][6][6],l[2][6][6],up[2][6][6],dn[2][6][6],hole[2][6][6];
int mab1[6][6],mab2[6][6];
int x[4]={1,0,0,-1};
int y[4]={0,-1,1,0};
int vis[6][6][6][6];
struct nd
{
    int x,y;
}st,ed,st1,ed1;
struct ndd
{
    int x,y,x1,y1;
    char op;
}pre[6][6][6][6];
char load[10000];
queue<ndd>q;
int T;
void copy(int a[6][6],int b[6][6])
{
    for(int i=0;i<6;i++)for(int j=0;j<6;j++)a[i][j]=b[i][j];
}
void read(int a[6][6],int r[6][6],int l[6][6],int up[6][6],int dn[6][6],int hole[6][6],nd &st,nd &ed)
{
    for(int i=0;i<6;i++)for(int j=0;j<6;j++)scanf("%d",&a[i][j]);
    for(int i=0;i<6;i++)
    {
        for(int j=0;j<6;j++)
        {
            int k;
            k=1<<0;
            if(k&a[i][j])l[i][j]=1;
            else l[i][j]=0;

            k=1<<1;
            if(k&a[i][j])dn[i][j]=1;
            else dn[i][j]=0;

            k=1<<2;
            if(k&a[i][j])r[i][j]=1;
            else r[i][j]=0;

            k=1<<3;
            if(k&a[i][j])up[i][j]=1;
            else up[i][j]=0;

            k=1<<4;
            if(k&a[i][j])hole[i][j]=1;
            else hole[i][j]=0;

            k=1<<5;
            if(k&a[i][j])st.x=i,st.y=j;

            k=1<<6;
            if(k&a[i][j])ed.x=i,ed.y=j;
        }
    }
}
int judge(ndd pt)
{
    if(pt.x==-1&&pt.y==-1&&pt.x1==-1&&pt.y1==-1)return 0;
    return 1;
}
void dfs(ndd pt)
{
    int cp=0;
    while(judge(pt))
    {
        load[cp++]=pre[pt.x][pt.y][pt.x1][pt.y1].op;
        pt=pre[pt.x][pt.y][pt.x1][pt.y1];
    }
    for(int i=cp-1;i>=0;i--) cout<<(char)load[i];
    cout<<endl;
}
void solve()
{
    memset(vis,0,sizeof(vis));
    memset(pre,-1,sizeof(pre));
    while(!q.empty()) q.pop();
    ndd gg;
    gg.x=st.x,gg.y=st.y;
    gg.x1=st1.x,gg.y1=st1.y;
    q.push(gg);
    vis[gg.x][gg.y][gg.x1][gg.y1]=1;
    int f=0,f1=0;
    int flag=0;
    ndd dd;
    while(!q.empty())
    {
        ndd pp=q.front();
        q.pop();
        if(pp.x==ed.x&&pp.y==ed.y)f=1;
        if(pp.x1==ed1.x&&pp.y1==ed1.y)f1=1;
        if(f&&f1)
        {
            flag=1;
            dd=pp;
            break;
        }
        for(int i=0;i<4;i++)
        {
            int dx=x[i];
            int dy=y[i];
            ndd tt;
            if(dx==0&&dy==1)///r
            {
                if(f||r[0][pp.x][pp.y])tt.x=pp.x,tt.y=pp.y;
                else tt.x=pp.x+dx,tt.y=pp.y+dy;
                if(f1||r[1][pp.x1][pp.y1])tt.x1=pp.x1,tt.y1=pp.y1;
                else tt.x1=pp.x1+dx,tt.y1=pp.y1+dy;
                tt.op='R';
            }
            else if(dx==0&&dy==-1)///l
            {
                if(f||l[0][pp.x][pp.y])tt.x=pp.x,tt.y=pp.y;
                else tt.x=pp.x+dx,tt.y=pp.y+dy;
                if(f1||l[1][pp.x1][pp.y1])tt.x1=pp.x1,tt.y1=pp.y1;
                else tt.x1=pp.x1+dx,tt.y1=pp.y1+dy;
                tt.op='L';
            }
            else if(dx==1&&dy==0)///dn
            {
                if(f||dn[0][pp.x][pp.y])tt.x=pp.x,tt.y=pp.y;
                else tt.x=pp.x+dx,tt.y=pp.y+dy;
                if(f1||dn[1][pp.x1][pp.y1])tt.x1=pp.x1,tt.y1=pp.y1;
                else tt.x1=pp.x1+dx,tt.y1=pp.y1+dy;
                tt.op='D';
            }
            else if(dx==-1&&dy==0)///up
            {
                if(f||up[0][pp.x][pp.y])tt.x=pp.x,tt.y=pp.y;
                else tt.x=pp.x+dx,tt.y=pp.y+dy;
                if(f1||up[1][pp.x1][pp.y1])tt.x1=pp.x1,tt.y1=pp.y1;
                else tt.x1=pp.x1+dx,tt.y1=pp.y1+dy;
                tt.op='U';
            }
            if(!vis[tt.x][tt.y][tt.x1][tt.y1]&&hole[tt.x][tt.y]&&hole[tt.x1][tt.y1]
            &&0<=tt.x&&tt.x<=5&&0<=tt.y&&tt.y<=5&&0<=tt.x1&&tt.x1<=5&&0<=tt.y1&&tt.y1<=5)
            {
                pre[tt.x][tt.y][tt.x1][tt.y1]=pp;

                q.push(tt);
                vis[tt.x][tt.y][tt.x1][tt.y1]=1;
            }
        }

    }
    if(flag)
    {
        dfs(dd);
    }
    else printf("-1\n");
}

int main()
{
    freopen("in","r",stdin);
    scanf("%d",&T);
    read(mab1,r[0],l[0],up[0],dn[0],hole[0],st,ed);
    T--;
    while(T--)
    {
        read(mab2,r[1],l[1],up[1],dn[1],hole[1],st1,ed1);
        solve();
        copy(mab1,mab2);
        copy(r[0],r[1]);
        copy(l[0],l[1]);
        copy(up[0],up[1]);
        copy(dn[0],dn[1]);
        copy(hole[0],hole[1]);
        st=st1,ed=ed1;
    }
    return 0;
}

Compiler output:
main.c:1:10: fatal error: iostream: No such file or directory
    1 | #include <iostream>
      |          ^~~~~~~~~~
compilation terminated.