标签:specific ios == com ble define red tle size
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:
Unfortunately, A + B is a hard problem for us, so you are allowed to make at most 5000 steps.
Two integers A, B are given. (1 ≤ A, B ≤ 1018).
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.
2 3
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;
}
标签:specific ios == com ble define red tle size
原文地址:https://www.cnblogs.com/jaszzz/p/12715961.html