// Minimum Time (Binary Search on Answer)
#include <bits/stdc++.h>
using namespace std;
bool canMake(vector<int>& t, int k, long long time) {
long long total = 0;
for(int x : t) total += time / x;
return total >= k;
}
int main() {
int n = 3, k = 7;
vector<int> t = {2,3,5};
long long l = 1, r = 1e18, ans = 0;
while(l <= r) {
long long mid = (l + r) / 2;
if(canMake(t, k, mid)) {
ans = mid;
r = mid - 1;
} else l = mid + 1;
}
cout << ans;
}
Ly8gTWluaW11bSBUaW1lIChCaW5hcnkgU2VhcmNoIG9uIEFuc3dlcikKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpib29sIGNhbk1ha2UodmVjdG9yPGludD4mIHQsIGludCBrLCBsb25nIGxvbmcgdGltZSkgewogICAgbG9uZyBsb25nIHRvdGFsID0gMDsKICAgIGZvcihpbnQgeCA6IHQpIHRvdGFsICs9IHRpbWUgLyB4OwogICAgcmV0dXJuIHRvdGFsID49IGs7Cn0KCmludCBtYWluKCkgewogICAgaW50IG4gPSAzLCBrID0gNzsKICAgIHZlY3RvcjxpbnQ+IHQgPSB7MiwzLDV9OwoKICAgIGxvbmcgbG9uZyBsID0gMSwgciA9IDFlMTgsIGFucyA9IDA7CgogICAgd2hpbGUobCA8PSByKSB7CiAgICAgICAgbG9uZyBsb25nIG1pZCA9IChsICsgcikgLyAyOwogICAgICAgIGlmKGNhbk1ha2UodCwgaywgbWlkKSkgewogICAgICAgICAgICBhbnMgPSBtaWQ7CiAgICAgICAgICAgIHIgPSBtaWQgLSAxOwogICAgICAgIH0gZWxzZSBsID0gbWlkICsgMTsKICAgIH0KCiAgICBjb3V0IDw8IGFuczsKfQ==