zoukankan      html  css  js  c++  java
  • A Plus Equals B

    Problem:

    A + B is a problem used to test one's basic knowledge for competitive programming. Here is yet another boring variation of it.

    You have two integers, A and B. You want to make them equal. To do so, you can perform several steps, where each step is one of the following:

    • A+=A
    • A+=B
    • B+=A
    • B+=B

    Unfortunately, A + B is a hard problem for us, so you are allowed to make at most 5000 steps.

    Input

    Two integers A, B are given. (1 ≤ A, B ≤ 1018).

    Output

    In the first line, print a single integer n (0 ≤ n ≤ 5000) denoting the number of steps.

    In next n lines, print one of the following strings to denote your desired operation: "A+=A", "A+=B", "B+=A", or "B+=B".

    Any sequence of steps that yields the desired result will be judged correct.

    Example

    Input

    2 3

    Output

    4
    B+=B
    B+=A
    A+=A
    A+=A

        #include <iostream>
        #include <vector>
        using namespace std;
        #define int long long
        int a , b;
        vector < int > s;
        signed main ( void )
        {
            cin >> a >> b;
            while ( a != b ) {
                while ( a % 2 == 0 ) {
                    s.push_back ( 1 );
                    a /= 2;
                }
                while ( b % 2 == 0 ) {
                    s.push_back ( 2 );
                    b /= 2;
                }
                if ( a == b ) break;
                if ( a < b ) {
                    b += a;
                    s.push_back ( 3 );
                } else {
                    a += b;
                    s.push_back ( 4 );
                }
            }
            cout << s.size ( ) << endl;
            for ( int i = 0 ; i < s.size ( ) ; i++ ) {
                if ( s [ i ] == 1 ) {
                    cout << "B+=B" << endl;
                } else if ( s [ i ] == 2 ) {
                    cout << "A+=A" << endl;
                } else if ( s [ i ] == 3 ) {
                    cout << "B+=A" << endl;
                } else {
                    cout << "A+=B" << endl;
                }
            }
            return 0;
        }
    

      

  • 相关阅读:
    55.every,filter,forEach,map,some,reduce,slice
    54.get set
    53.一个挺有意思的api(drag)
    52.var,let,const
    iOS18 程序启动过程
    iOS17 加密
    iOS总结2
    iOS16 常用的正则表达式
    iOS15 UIalertController
    iOS14 UIWebView
  • 原文地址:https://www.cnblogs.com/jaszzz/p/12715961.html
Copyright © 2011-2022 走看看