fork download
  1. #include <bits/stdc++.h>
  2. #define ll long long
  3. #define fr(i, a, b) for (ll i = a; i < b; i++)
  4. #define mmst(i,a) memset(i,a,sizeof(i))
  5. #define all(i) i.begin(),i.end()
  6. #define allr(i) i.rbegin(),i.rend()
  7. #define fast \
  8.   ios_base::sync_with_stdio(false); \
  9.   cin.tie(NULL); \
  10.   cout.tie(NULL);
  11. #define SS " "
  12. #define ddd cout<<"D"<<endl;
  13. #define dd(i) cout<<i<<endl;
  14. #define yes cout << "Yes" << endl
  15. #define no cout << "No" << endl
  16. const char nl = '\n';
  17. using namespace std;
  18.  
  19. const ll mod = 1e9 + 7;
  20. const ll sz = 9e8;
  21. const ll inf = 1e18;
  22. ll ocr, incr;
  23.  
  24. void solve()
  25. {
  26. ll s,k;cin>>s>>k;
  27. ll ans = s * k;
  28. auto getNd = [&](ll op) -> ll{
  29. ll nw = s;
  30. if(nw % 10 == 5)nw += 5;
  31. if(nw % 10 == 0)return nw;
  32. while(nw % 10 != 2){
  33. // ddd
  34. nw += (nw % 10);
  35. op--;
  36. if(op == 0)break;
  37. }
  38. ll dv = op / ocr;
  39. op = op % 4;
  40. nw += dv * incr;
  41. // cout<<op<<nl;
  42. while(op > 0){
  43. nw += (nw % 10);
  44. op--;
  45. }
  46. return nw;
  47. };
  48. /*
  49.   #include <bits/stdc++.h>
  50.   #define ll long long
  51.   #define fr(i, a, b) for (ll i = a; i < b; i++)
  52.   #define mmst(i,a) memset(i,a,sizeof(i))
  53.   #define all(i) i.begin(),i.end()
  54.   #define allr(i) i.rbegin(),i.rend()
  55.   #define fast \
  56.   ios_base::sync_with_stdio(false); \
  57.   cin.tie(NULL); \
  58.   cout.tie(NULL);
  59.   #define SS " "
  60.   #define ddd cout<<"D"<<endl;
  61.   #define dd(i) cout<<i<<endl;
  62.   #define yes cout << "Yes" << endl
  63.   #define no cout << "No" << endl
  64.   const char nl = '\n';
  65.   using namespace std;
  66.  
  67.   const ll mod = 1e9 + 7;
  68.   const ll sz = 9e8;
  69.   const ll inf = 1e18;
  70.   ll ocr, incr;
  71.  
  72.   void solve()
  73.   {
  74.   ll s,k;cin>>s>>k;
  75.   ll ans;
  76.   auto getNd = [&](ll op) -> ll{
  77.   ll nw = s;
  78.   ll dv = op / 4;
  79.   op = op % 4;
  80.   nw = nw + dv * 20;
  81.   // cout<<op<<nl;
  82.   // while(op > 0){
  83.   // nw += (nw % 10);
  84.   // op--;
  85.   // }
  86.   return nw;
  87.   };
  88.   ll op1 = 355748884, op2 = 355753907,op3 = 355758828;
  89.   // cout<<op1<<nl;
  90.   cout<<op2<<nl;
  91.   // cout<<op3<<nl;
  92.   // cout<<getNd(op1) * (k - op1)<<nl;
  93.   cout<<getNd(op2) * (k - op2 + (op2 % 4))<<nl;
  94.   // cout<<getNd(op3) * (k - op3)<<nl;
  95.   ll m1 = 355753904 / 4;
  96.   ll a1 = s + 20 * m1;
  97.   ll z1 = (k - m1 * 4) * a1;
  98.   cout<<z1<<nl;
  99.   while(op2 > 0){
  100.   s += (s % 10);
  101.   op2--;
  102.   k--;
  103.   }
  104.   ans = s * k;
  105.   cout<<ans<<nl;
  106.   }
  107.  
  108.   int main()
  109.   {
  110.   fast ll T = 1;
  111.   // cin >> T;
  112.   ocr = 4, incr = 20;
  113.   for (int tc = 1; tc <= T; tc++)
  114.   {
  115.   // cout<<"Case "<<tc<<": ";
  116.   solve();
  117.   }
  118.   return 0;
  119.   }
  120.   */
  121. // cout<<sz<<nl;
  122. for (int i = 0; i < 4; ++i) {
  123. ll lo = 1, hi = k, mid1, mid2;
  124. if (k > 0) {
  125. while((hi - lo) >= 400){
  126. mid1 = (hi - lo) / 3 + lo;
  127. mid2 = hi - (hi - lo) / 3;
  128. ll asbe1 = getNd(mid1) * (k - mid1);
  129. ll asbe2 = getNd(mid2) * (k - mid2);
  130. if(asbe1 >= asbe2){
  131. ans = max(ans, asbe1);
  132. hi = mid2 - 1;
  133. }
  134. else{
  135. ans = max(ans, asbe2);
  136. lo = mid1 + 1;
  137. }
  138. }
  139. for(ll j = lo; j <= hi; j++){
  140. ans = max(ans, getNd(i) * (k - i));
  141. }
  142. k--;
  143. s = s + s % 10;
  144. ans = max(ans, k * s);
  145. }
  146. }
  147. // while(lo <= hi){
  148. // mid1 = (hi - lo) / 3 + lo;
  149. // mid2 = hi - (hi - lo) / 3;
  150. // ll asbe1 = getNd(mid1) * (k - mid1);
  151. // ll asbe2 = getNd(mid2) * (k - mid2);
  152. // if(asbe1 >= asbe2){
  153. // ans = max(ans, asbe1);
  154. // hi = mid2 - 1;
  155. // }
  156. // else{
  157. // ans = max(ans, asbe2);
  158. // lo = mid1 + 1;
  159. // }
  160. // if(hi == 355753906)cout<<mid1<<SS<<asbe1<<SS<<mid2<<SS<<asbe2<<nl;
  161. // // cout<<lo<<SS<<hi<<nl;
  162. // }
  163. cout<<ans<<nl;
  164. }
  165.  
  166. int main()
  167. {
  168. fast ll T = 1;
  169. cin >> T;
  170. ocr = 4, incr = 20;
  171. for (int tc = 1; tc <= T; tc++)
  172. {
  173. // cout<<"Case "<<tc<<": ";
  174. solve();
  175. }
  176. return 0;
  177. }
Success #stdin #stdout 0s 5276KB
stdin
Standard input is empty
stdout
9209443616841343280