fork(1) download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int main(){
  4. int t;
  5. cin>>t;
  6. for(int ii=1;ii<=t;ii++){
  7. vector<long double> str;
  8. long long int n,k;
  9. cin>>n>>k;
  10. long long int arr[k];
  11. long long int sum=0;
  12. for(int i=0;i<k;i++){cin>>arr[i];sum+=arr[i];}
  13. if(100%n==0){cout<<"Case #"<<ii<<": "<<100<<endl;continue;}
  14. long long int ans=0;
  15. for(int i=0;i<k;i++){
  16. if((arr[i]*100)%n==0){ans+=(arr[i]*100)/n;continue;}
  17.  
  18. long double val=((long double)arr[i]*100)/n;
  19. if(val-(long long int)val>=0.5){ans+=(int)val+1;}
  20. else{ans+=(long long int)val;str.push_back(val-(long long int)val);}
  21. }
  22. sort(str.begin(),str.end());
  23. long double cmp=(double)100/n;
  24. cmp-=(long long int)cmp;
  25. // cout<<"Here"<<" "<<ans<<endl;
  26. for(long long int i=sum+1;i<=n;i++){
  27.  
  28.  
  29. ans+=(100/n);
  30. if(cmp>=0.5){ans+=1;continue;}
  31.  
  32. if(str.size()==0){
  33. str.push_back(0.00);
  34. }
  35.  
  36. auto it=str.end();
  37. it--;
  38. long double val=*it;
  39. str.pop_back();
  40. val+=cmp;
  41. // cout<<val<<endl;
  42. if(val>=0.5)ans+=1;
  43. else{str.push_back(val);}
  44. }
  45. cout<<"Case #"<<ii<<": "<<ans<<endl;
  46. }
  47. return 0;
  48. }
Runtime error #stdin #stdout 0s 4372KB
stdin
Standard input is empty
stdout
Standard output is empty