Advertisement
Fahim_7861

c2

Jun 19th, 2019
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.19 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. typedef long long ll;
  4.  
  5. #define fastread() (ios_base:: sync_with_stdio(false),cin.tie(NULL));
  6.  
  7.  
  8. int main()
  9. {
  10. fastread();
  11.  
  12. ll i,j,n,m,p,sum=0,k,t,a,b,c,l,ks,d,cnt=0,q,lk,bs,bh,jp,jo,lo;
  13.  
  14. bool flag=true;
  15.  
  16. cin>>n>>k;
  17.  
  18. ll ara[n+1];
  19.  
  20. for(i=0; i<n; i++)cin>>ara[i];
  21.  
  22. vector<ll>v;
  23.  
  24. set<ll,greater<ll> >s;
  25.  
  26. map<ll,ll>mp;
  27. for(i=0; i<n; i++)
  28. {
  29. sum+=ara[i];
  30. if(sum<=k)cout<<0<<" ";
  31.  
  32. else{
  33.  
  34. ll cnt=0;
  35.  
  36. ll pre=sum;
  37.  
  38. for(auto x : s)
  39. {
  40.  
  41. if(sum-mp[x]*x>k)
  42. {
  43. sum-=(mp[x]*x);
  44.  
  45. cnt+=mp[x];
  46. }
  47.  
  48. else
  49. {
  50. ll val=sum-k;
  51.  
  52. ll ps=val/x;
  53.  
  54. if(val%x)ps++;
  55.  
  56. sum-=(ps*x);
  57.  
  58. cnt+=ps;
  59. }
  60.  
  61.  
  62.  
  63.  
  64. if(sum<=k)break;
  65. }
  66.  
  67. sum=pre;
  68.  
  69. cout<<cnt<<" ";
  70.  
  71.  
  72.  
  73. }
  74.  
  75. mp[ara[i]]++;
  76.  
  77. if(mp[ara[i]]==1)s.insert(ara[i]);
  78.  
  79.  
  80. }
  81.  
  82.  
  83.  
  84.  
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement