fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main() {
  5. // your code goes here
  6. int t;
  7. cin >> t;
  8.  
  9. while(t--){
  10. int n;
  11. int Th;
  12. cin >> n;
  13. cin >> Th;
  14. //cout << n<< ' '<<Th<<endl;
  15.  
  16. int arr[n];
  17. long long int tot = 0;
  18.  
  19. for(int i=0; i< n; i++){
  20. cin >> arr[i];
  21. //cout <<arr[i]<<' ';
  22.  
  23. tot += arr[i];
  24. }
  25. //cout<<endl;
  26.  
  27. long long int diff = tot - Th;
  28. int M_init = diff/n;
  29. int M_init_prev = M_init;
  30. //cout<<"here"<<endl;
  31. if(diff == 0)
  32. cout<<0 <<' '<<0<<endl;
  33.  
  34. long long int s = 0, s_prev = 0;
  35. if(diff > 0){
  36.  
  37.  
  38.  
  39. for(int i=0; i< n; i++){
  40.  
  41. s+=(arr[i] > M_init)? arr[i]-M_init : 0;
  42.  
  43. }
  44. s_prev = s;
  45.  
  46. while(s >= Th){
  47. M_init_prev = M_init;
  48. M_init++;
  49. s_prev = s;
  50. s=0;
  51. for(int i=0; i< n; i++){
  52.  
  53. s+=(arr[i] > M_init)? arr[i]-M_init : 0;
  54.  
  55. }
  56. }
  57.  
  58. cout<<M_init_prev <<' '<<s_prev<<endl;
  59. }
  60.  
  61. else if(diff < 0){
  62.  
  63.  
  64.  
  65. for(int i=0; i< n; i++){
  66.  
  67. s+=arr[i]-M_init;
  68.  
  69. }
  70. // s_prev = s;
  71. while(s < Th){
  72. // M_init_prev = M_init;
  73. M_init--;
  74. //s_prev = s;
  75. s=0;
  76. for(int i=0; i< n; i++){
  77.  
  78. s+=arr[i]-M_init;
  79.  
  80. }
  81. }
  82. cout<<M_init <<' '<<s<<endl;
  83. }
  84.  
  85.  
  86.  
  87. }
  88. return 0;
  89. }
  90.  
Success #stdin #stdout 0s 4408KB
stdin
Standard input is empty
stdout
Standard output is empty