a

#include<bits/stdc++.h>
using namespace std;

int m,k;
int nx,ny;
queue<int> q1;
int vis[100005];
string path[10000];
string p1= "DABC";

int main(){
    memset(vis,-1,sizeof(vis));
    cin>>m>>k;
    int front,rear=1;
    front=rear;
    q1.push(m);
    q2.push(0);
    vis[m]=0;
    while(front<=rear){
        int x=q1.front();
        q1.pop();
        int y=q2.front();
        q2.pop(); 
        for(int i=1; i<=3; i++){
            int nx;
            if(i==1)    nx=x+1;
            if(i==2)    nx=x-10;
            if(i==3)     nx=x*2;
            
            if(nx>=0 && nx<=100000 && vis[nx]==-1){
                path[nx]=path[x]+p1[i];
                rear++;
                q1.push(nx);
                q2.push(y+1);
                vis[nx]=true;
            }
            if(nx==k){
                cout<<y+1<<endl;
                cout<<path[nx]<<endl;
                return 0;
            }
        }
        front++;
    }
    return 0;
}

 

posted @ 2023-07-23 15:54  竹余居居居居居  阅读(21)  评论(0)    收藏  举报