fork(1) download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. struct item{
  4. int cnt;
  5. int ori_val;
  6. int val()const
  7. {
  8. return (ori_val+cnt)/(cnt+1);
  9. }
  10. bool operator<(item b)const
  11. {
  12. return val()<b.val();
  13. }
  14. };
  15. int main()
  16. {
  17. int T;
  18. scanf("%d",&T);
  19. int no=1;
  20. while(no<=T)
  21. {
  22. int n;
  23. cin>>n;
  24. priority_queue<item> pq;
  25. for(int i=0;i<n;i++)
  26. {
  27. int t;
  28. cin>>t;
  29. pq.push({0,t});
  30. }
  31. int ans=pq.top().val();
  32. for(int i=1;i<=1000;i++)
  33. {
  34. item mx=pq.top();
  35. pq.pop();
  36. mx.cnt++;
  37. pq.push(mx);
  38. ans=min(ans,pq.top().val()+i);
  39. }
  40. printf("Case #%d: %d\n",no++,ans);
  41. }
  42. }
  43.  
Success #stdin #stdout 0s 3280KB
stdin
3
1
3
4
1 2 1 2
1
4
stdout
Case #1: 3
Case #2: 2
Case #3: 3