Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- #define MAX 1e5
- using namespace std;
- map<int,int> mp;
- int build( int n ){
- int d;
- if( mp[n] ) return mp[n];
- if( n&1 ) {
- mp[n] = build( 3 * n + 1 ) + 1;
- return mp[n];
- }
- else{
- mp[n] = build( n / 2 ) + 1;
- return mp[n];
- }
- }
- int main(){
- int a , b;
- mp[1] = 1;
- for( int i = 1 ; i < MAX ; i++ ) build( i );
- while( cin >> a >> b ){
- int max = -1;
- bool p = 0;
- if( a > b ) a ^= b , b ^= a , a ^= b , p = 1;
- for( int i = a ; i < b + 1 ; i++ ) {
- if( mp[i] ) max = mp[i] > max ? mp[i] : max;
- else {
- int tmp = build(i);
- max = tmp > max ? tmp : max;
- }
- }
- if(p) printf( "%d %d %d\n" , b , a , max );
- else printf( "%d %d %d\n" , a , b , max );
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement