diff --git a/src/week6/BOJ1561/BOJ1561_V1.cpp b/src/week6/BOJ1561/BOJ1561_V1.cpp new file mode 100644 index 0000000..179a004 --- /dev/null +++ b/src/week6/BOJ1561/BOJ1561_V1.cpp @@ -0,0 +1,65 @@ +#include +using namespace std; +long long int N,M; +vector available; +bool check(long long int num) { + long long int cnt = M; + for (int i=0; i= N; +} +int main() { + + ios_base::sync_with_stdio(false); + cin.tie(nullptr); + cout.tie(nullptr); + + cin >> N >> M; + + + + for (int i=0; i> num; + available.push_back(num); + } + + if (N <= M) { + cout << N << '\n'; + return 0; + } + long long int mid,low=0,high=N*30, time; + + while(low <= high) { + mid = (low + high) / 2; + if (check(mid)) { + time = mid; + high = mid - 1; + } else { + low = mid + 1; + } + } + + long long finishTime = time; + long long before = M; + + for (int i = 0; i < M; i++) { + before += (finishTime - 1) / available[i]; + } + + long long int cnt = N-before; + + for (int i=0; i