From fc7e17ad3fd3f4aeaeca7662eeefab309672b43b Mon Sep 17 00:00:00 2001 From: WataruOtsuki Date: Tue, 28 Jun 2022 00:44:25 +0900 Subject: [PATCH 1/4] revised --- src/apple.c | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/src/apple.c b/src/apple.c index 766d543..153880f 100644 --- a/src/apple.c +++ b/src/apple.c @@ -4,14 +4,42 @@ int n; int k; int A[100000]; +int p(int x) +{ + int sum = 0; + for (int i = 0; i < n; i++) + { + sum += (A[i] + x - 1) / x; + } + if (sum <= k) + { + return 1; + } + else + return 0; +} -int main(){ +int main() +{ int i, lb, ub; scanf("%d%d", &n, &k); - for(i = 0; i < n; i++){ + for (i = 0; i < n; i++) + { scanf("%d", &A[i]); } + lb = 0; + ub = 1000000000; + + while (ub - lb > 1) + { + int mid = (lb + ub) / 2; + if (p(mid) == 1) + ub = mid; + else + lb = mid; + } + printf("%d\n", ub); return 0; } From 370246befbf84d61776a090c8d785f3c9325622c Mon Sep 17 00:00:00 2001 From: WataruOtsuki Date: Tue, 28 Jun 2022 00:55:25 +0900 Subject: [PATCH 2/4] revised --- src/array.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/array.c b/src/array.c index 13ed925..eef6aa1 100644 --- a/src/array.c +++ b/src/array.c @@ -4,15 +4,26 @@ int n; int k; int A[100000]; - -int main(){ +int main() +{ int i, lb, ub; scanf("%d%d", &n, &k); - for(i = 0; i < n; i++){ + for (i = 0; i < n; i++) + { scanf("%d", &A[i]); } + lb = -1; + ub = n; + while (ub - lb > 1) + { + int mid = (lb + ub) / 2; + if (A[mid] >= k) + ub = mid; + else + lb = mid; + } - + printf("%d\n", ub); return 0; -} +} \ No newline at end of file From 869b0df8cf18bb7a70a064e928f68df7db94f632 Mon Sep 17 00:00:00 2001 From: WataruOtsuki Date: Tue, 28 Jun 2022 01:11:54 +0900 Subject: [PATCH 3/4] revised --- src/spear.c | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/src/spear.c b/src/spear.c index 766d543..7dbcb47 100644 --- a/src/spear.c +++ b/src/spear.c @@ -4,14 +4,43 @@ int n; int k; int A[100000]; +int p(int x) +{ + int sum = 0; + for (int i = 0; i < n; i++) + { + sum += A[i] / x; + } + if (sum >= k) + { + return 1; + } + else + return 0; +} -int main(){ +int main() +{ int i, lb, ub; scanf("%d%d", &n, &k); - for(i = 0; i < n; i++){ + for (i = 0; i < n; i++) + { scanf("%d", &A[i]); } + lb = 0; + ub = 1000000000; + + while (ub - lb > 1) + { + int mid = (lb + ub) / 2; + if (p(mid) == 1) + lb = mid; + else + ub = mid; + } + + printf("%d\n", lb); return 0; } From 49dff2cdec66904dbdd69cd3a562865874b5667e Mon Sep 17 00:00:00 2001 From: WataruOtsuki Date: Sat, 6 Aug 2022 18:56:53 +0900 Subject: [PATCH 4/4] revised --- src/spear.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/spear.c b/src/spear.c index 7dbcb47..8da4e4f 100644 --- a/src/spear.c +++ b/src/spear.c @@ -29,7 +29,7 @@ int main() } lb = 0; - ub = 1000000000; + ub = 1000000001; while (ub - lb > 1) {