蒟蒻初学OI一两天,不太会记搜。
希望大佬指点迷津
#include <bits/stdc++.h>
using namespace std;
#define endl "\n"
#define ll long long
const int INF = 1e6 + 1;
int f[INF];
int w(int k, int step){
if(f[k] != -1) return f[k];
if(k == 1) return f[1] = step;
if(k % 2 == 1) return f[k] = w(3*k+1, step+1);
else return f[k] = w(k/2, step+1);
}
int main(){
ios :: sync_with_stdio(false);
int a, b;
while(cin >> a >> b){
a = min(a, b), b = max(a, b);
int maxn = INT_MIN;
memset(f, -1, sizeof(f));
for(int i=a; i<=b; i++) maxn = max(w(i, 1), maxn);
cout << a << " " << b << " " << maxn << endl;
}
return 0;
}