• 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;
        }
    

      

  • 相关阅读:
    jmeter之jmx和控件介绍
    Jmeter使用1
    jmeter组件之聚合报告分析
    响应断言
    jmeter组件介绍-线程组、http采样器、结果树
    jmeter目录文件讲解和切换语言
    jmeter 学习 -安装
    关于去除input type='file'改变组件的默认样式换成自己需要的样式的解决方案
    js根据id、value值对checkbox设置选中状态
    javaweb简单的实现文件下载及预览
  • 原文地址:https://www.cnblogs.com/jaszzz/p/12715961.html
Copyright © 2020-2023  润新知