Advertisement
maycod23

Untitled

Apr 29th, 2023
25
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.87 KB | None | 0 0
  1. #pragma GCC optimize("Ofast,unroll-loops")
  2. #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,mmx,avx,avx2")
  3. /*HAR HAR MAHADEV
  4. ヽ`、ヽ``、ヽ`ヽ`、、ヽ `ヽ 、ヽ`🌙`ヽヽ`ヽ、ヽ`
  5. ヽ`、ヽ``、ヽ 、``、 `、ヽ` 、` ヽ`ヽ、ヽ `、ヽ``、
  6. ヽ、``、`、ヽ``、 、ヽヽ`、`、、ヽヽ、``、 、 ヽ`、
  7. ヽ``、 ヽ`ヽ`、、ヽ `ヽ 、 🚶ヽ````ヽヽヽ`、、ヽ`、、ヽ*/
  8. //think twice code once
  9. //when its getting hard remember why you started
  10. # include <bits/stdc++.h>
  11. using namespace std;
  12. typedef long long ll;
  13. typedef unsigned long long ull;
  14. typedef long double ld;
  15.  
  16. typedef pair<int, int> pi;
  17. typedef pair<ll, ll> pl;
  18.  
  19. typedef vector<int> vi;
  20. typedef vector<ld> vd;
  21. typedef vector<ll> vl;
  22. typedef vector<pi> vpi;//typedef for datatype and #define for macro
  23. typedef vector<pl> vpl;
  24.  
  25. # define fast ios_base::sync_with_stdio(false);cin.tie(NULL);
  26. # define MOD 1000000007
  27. # define endl '\n'
  28. # define FOR(i, a, b) for (int i=a; i<(b); i++)
  29. # define F0R(i, a) for (int i=0; i<(a); i++)
  30. # define FORd(i,a,b) for (int i = (b)-1; i >= a; i--)
  31. # define F0Rd(i,a) for (int i = (a)-1; i >= 0; i--)
  32. # define INF 9e18
  33. # define PI 3.14159265358979323846
  34. # define lb lower_bound
  35. # define ub upper_bound
  36. # define mp make_pair
  37. # define pb push_back
  38. # define fi first
  39. # define se second
  40. # define all(a) a.begin(), a.end()
  41. # define iceil(n, x) (((n) + (x) - 1) / (x))
  42. ll mod_add(ll a, ll b, ll m) {a = a % m; b = b % m; return (((a + b) % m) + m) % m;}
  43. ll mod_mul(ll a, ll b, ll m) {a = a % m; b = b % m; return (((a * b) % m) + m) % m;}
  44. ll mod_sub(ll a, ll b, ll m) {a = a % m; b = b % m; return (((a - b) % m) + m) % m;}
  45. mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
  46. vl a(100009, 0);
  47. map<ll, ll> m;
  48. ll cost(ll k, ll n)
  49. {
  50. vl temp;
  51. for (ll i = 0; i < n; i++)
  52. {
  53. ll aporv = a[i] + (k * (i + 1));
  54. temp.pb(aporv);
  55. }
  56. sort(all(temp));
  57. ll count = 0;
  58. for (ll i = 0; i < k; i++)
  59. {
  60. count += temp[i];
  61. }
  62. // cout << count << endl;
  63. return count;
  64. }
  65. int main()
  66. {
  67. fast;
  68. ll t = 1;
  69. // cin >> t;
  70. while (t--)
  71. {
  72. ll n, i, s; cin >> n >> s;
  73. for (i = 0; i < n; i++) cin >> a[i];
  74. ll l = 1, r = n;
  75. while (l <= r)
  76. {
  77. ll k = l + (r - l) / 2;
  78. ll count = cost(k, n);
  79. if (count > s)
  80. {
  81. r = (k - 1);
  82. continue;
  83. }
  84. if (count <= s)
  85. {
  86. if (m[k] == 0) m[k] = count;
  87. else m[k] = min(m[k], count);
  88. l = k + 1;
  89. continue;
  90. }
  91. }
  92. ll ans1 = 0, ans2 = 0;
  93. for (auto it = m.rbegin(); it != m.rend(); it++)
  94. {
  95. if (it->second != 0)
  96. {
  97. ans1 = it->first; //k
  98. ans2 = it->second; //cost min cost
  99. break;
  100. }
  101. }
  102. cout << ans1 << " " << ans2 << " " << endl;
  103. m.clear();
  104. }
  105. return 0;
  106. }
  107. /* stuff you should look for
  108. * stack/set/gcd/palindrome/twopointer/slidingwindow
  109. prefix sum/range query/ patterns/matrices/string
  110. lexographicaly/xoor/subsequence subarray/overlapping intervals
  111. factors(rootn) primefactorisation vectorofallfactors dfs bfs msdfs
  112. lowerbound-point to first element ya toh equal ya toh just bada; (j=lb(all(v),s)-v.begin())
  113. upperbound- just bada element to the target if not then v.size() return karega dono
  114. hi case me
  115. kahi pe bhi in 0 indexing v.begin()+0, se jis index tak jana hai usse ek jyada tak
  116. availaible snip-dfs,mint,quadraticformula,2dvector
  117. mytemp,negativemod,primefactorisation
  118. * int overflow, array bounds
  119. * special cases (n=1?)
  120. * do smth instead of nothing and stay organized
  121. * WRITE STUFF DOWN
  122. * DON'T GET STUCK ON ONE APPROACH
  123. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement