fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define GG ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
  4. int main () { GG;
  5. int t; cin>>t;
  6. while(t--) {
  7. int n,c,ans=0,x;
  8. cin>>n>>c; vector<int> v(n+1),v1(n+1);
  9. for(int i=1;i<n+1;i++) cin>>v[i];
  10.  
  11. x=n/2;
  12. if(n%2!=0) x++;
  13. int mn =v[1]+1,in=1;
  14. for(int i=2;i<=x;i++)
  15. { if(v[i]+i<mn)
  16. { mn=v[i]+i;
  17. in=i;
  18. }
  19. }
  20.  
  21. if(mn<=c)
  22. { v[in]=0;
  23. c-=mn; ans++;
  24. for(int i=1,j=n;i<=x;i++,j--)
  25. { if(v[i]!=0)
  26. { v1[i]=v[i]+i;
  27. }
  28. if(v[j]!=0)
  29. v1[j]=v[j]+i;
  30. }
  31. sort(v1.begin()+1,v1.end());
  32.  
  33. for(int i=2;i<n+1;i++)
  34. { if(v1[i]<=c)
  35. { ans++;
  36. c-=v1[i];
  37. }
  38. else break;
  39. }
  40.  
  41. }
  42.  
  43. cout<<ans<<"\n";
  44. }return 0;}
Success #stdin #stdout 0.01s 5304KB
stdin
10
5 6
1 1 1 1 1
8 32
100 52 13 6 9 4 100 35
1 1
5
4 5
4 3 2 1
5 9
2 3 1 4 1
5 8
2 3 1 4 1
4 3
2 3 4 1
4 9
5 4 3 3
2 14
7 5
5 600000000
500000000 400000000 300000000 200000000 100000000
stdout
2
3
0
1
3
2
1
1
2
2