Advertisement
Ritam_C

Cards Construction

Apr 1st, 2021
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.84 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define ll long long
  3. #define ull unsigned long long int
  4. #define ld long double
  5. #define pb push_back
  6. #define p_b pop_back
  7. #define si stack<int>
  8. #define sll stack<ll>
  9. #define sc stack<char>
  10. #define vi vector<int>
  11. #define vll vector<ll>
  12. #define mii map<int, int>
  13. #define msi map<string, int>
  14. #define mci map<char, int>
  15. #define qc queue<char>
  16. #define qi queue<int>
  17. #define qll queue<ll>
  18. using namespace std;
  19.  
  20. ull cards(ll n){
  21.     if(n < 2){
  22.         return 0;
  23.     } else{
  24.         long h = (-1+sqrt(1+24*n))/6;
  25.         return 2*n/(h*(3*h+1))+cards(n-(2*n/(h*(3*h+1)))*(h*(3*h+1)/2));
  26.     }
  27. }
  28.  
  29. int main(){
  30.     ios_base::sync_with_stdio(false);
  31.     cin.tie(NULL);
  32.     int t;
  33.     cin >> t;
  34.    
  35.     while(t--){
  36.         ll n;
  37.         cin >> n;
  38.         cout << cards(n) << "\n";
  39.     }
  40.     return 0;
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement