#include #include using namespace std; typedef long long int ll; double evaluate(const vector&h, ll hitsPerSec, ll damagePerHit){ double res=0; for (ll hi:h){ ll hitsNeeded = (hi + damagePerHit - 1) / damagePerHit; res += hitsNeeded / double(hitsPerSec); } return res; } int main() { ll n, sum; cin >> n >> sum; vector h(n); for (int i=0; i> h[i]; } ll hitsPerSec = sum/2; ll damagePerHit = (sum+1)/2; double value = evaluate(h, hitsPerSec, damagePerHit); while (hitsPerSec > 1){ double newval = evaluate(h, hitsPerSec-1, damagePerHit+1); if (newval < value) { value=newval; hitsPerSec--; damagePerHit++; } else { break; } } ll hitsPerSec2 = (sum+1)/2; ll damagePerHit2 = (sum)/2; double value2 = evaluate(h, hitsPerSec2, damagePerHit2); while (damagePerHit2 > 1){ double newval = evaluate(h, hitsPerSec2-1, damagePerHit2+1); if (newval < value2) { value2=newval; hitsPerSec2--; damagePerHit2++; } else { break; } } if (value < value2){ cout << damagePerHit << ' ' << hitsPerSec << '\n'; } else { cout << damagePerHit2 << ' ' << hitsPerSec2 << '\n'; } return 0; }