From 99e2e923d0c77b02f3fb4ff648ea916954868606 Mon Sep 17 00:00:00 2001 From: Yuqian Yang Date: Fri, 28 Feb 2025 23:13:39 +0800 Subject: chore(store): move everything to store. --- .../works/life/algorithm-contest-2/solution/4.cpp | 48 ++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 store/works/life/algorithm-contest-2/solution/4.cpp (limited to 'store/works/life/algorithm-contest-2/solution/4.cpp') diff --git a/store/works/life/algorithm-contest-2/solution/4.cpp b/store/works/life/algorithm-contest-2/solution/4.cpp new file mode 100644 index 0000000..93c9190 --- /dev/null +++ b/store/works/life/algorithm-contest-2/solution/4.cpp @@ -0,0 +1,48 @@ +#define _CRT_SECURE_NO_WARNINGS +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define x first +#define y second +#define pub push_back +#define MP make_pair +#define LL long long +using namespace std; +typedef pair PII; + +const int MAXN = 1e5 + 5; +int n, k, h[MAXN], w[MAXN]; + +bool check(int m) { + if (m == 0) return true; + int cnt = 0; + for (int i = 0; i < n; i++) { + cnt += (h[i] / m) * (w[i] / m); + } + return cnt >= k; +} + +int main(void) { + cin >> n >> k; + int mx = 0; + for (int i = 0; i < n; i++) { + scanf("%d", &h[i]); + scanf("%d", &w[i]); + mx = max(mx, max(h[i], w[i])); + } + + int l = 0, r = mx; + while (l < r) { + int m = (l + r + 1) >> 1; + if (check(m)) l = m; + else r = m - 1; + } + cout << r; + return 0; +} \ No newline at end of file -- cgit v1.2.3