Ankit_132

C

Aug 12th, 2023
628
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.47 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. #define ll     long long
  6. #define _test   int _TEST; cin>>_TEST; while(_TEST--)
  7. #define ff     first
  8. #define ss     second
  9. #define pb     push_back
  10.  
  11. int main()
  12. {
  13.     ios_base::sync_with_stdio(false);
  14.     cin.tie(NULL);
  15.     cout.tie(NULL);
  16.  
  17.     _test
  18.     {
  19.         int n;
  20.         cin>>n;
  21.  
  22.         int ans = 0, sum, mmax, f;
  23.         set<int> st;
  24.  
  25.         vector<int> poss;
  26.         vector<int> done(n*n+1);
  27.         for(int i=1; i<=n; i++)
  28.         {
  29.             for(int j=1; j<=n; j++)
  30.             {
  31.                 if(done[i*j])       continue;
  32.                 done[i* j] = 1;
  33.                 poss.pb(i*j);
  34.             }
  35.         }
  36.  
  37.         int i, avail, tmp;
  38.  
  39.         sort(poss.rbegin(), poss.rend());
  40.  
  41.         for(auto x: poss)
  42.         {
  43.             if(x*n < ans)       break;
  44.  
  45.             sum = mmax = 0;
  46.  
  47.             f = 1;
  48.  
  49.             for(avail=1; avail<=n; avail++)
  50.                 st.insert(avail);
  51.  
  52.             for(i=n; i>=1; i--)
  53.             {
  54.                 if(st.lower_bound((x/i)+1) == st.begin())
  55.                 {
  56.                     f = 0;
  57.                     break;
  58.                 }
  59.  
  60.                 tmp = *(--st.lower_bound((x/i)+1));
  61.                 st.erase(tmp);
  62.  
  63.                 mmax = max(mmax, tmp * i);
  64.                 sum += tmp * i;
  65.             }
  66.  
  67.             if(!f)      continue;
  68.  
  69.             ans = max(ans, sum-mmax);
  70.         }
  71.  
  72.         cout<<ans<<"\n";
  73.     }
  74. }
Advertisement
Add Comment
Please, Sign In to add comment