From 282322b68b46bdfa53bd3b0c16bab6879241f49a Mon Sep 17 00:00:00 2001 From: Naoki Tokuhiro Date: Sat, 18 Jun 2022 17:00:00 +0900 Subject: [PATCH 01/10] revised --- src/apple.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/src/apple.c b/src/apple.c index 766d543..f58d053 100644 --- a/src/apple.c +++ b/src/apple.c @@ -5,13 +5,20 @@ int k; int A[100000]; -int main(){ - int i, lb, ub; - scanf("%d%d", &n, &k); - for(i = 0; i < n; i++){ - scanf("%d", &A[i]); - } +int main() { + int i, lb, ub; + scanf("%d%d", &n, &k); + 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; - - return 0; -} +} \ No newline at end of file From a76d27578d6be0813e2619907aa4c34176f533c2 Mon Sep 17 00:00:00 2001 From: Naoki Tokuhiro Date: Mon, 27 Jun 2022 16:23:09 +0900 Subject: [PATCH 02/10] revised --- src/apple.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/apple.c b/src/apple.c index f58d053..79b74e8 100644 --- a/src/apple.c +++ b/src/apple.c @@ -20,5 +20,4 @@ int main() { } printf("%d\n", ub); return 0; - } \ No newline at end of file From a58b1b12378f34729bf04261767e30dacfcfd49b Mon Sep 17 00:00:00 2001 From: Naoki Tokuhiro Date: Tue, 28 Jun 2022 04:41:26 +0900 Subject: [PATCH 03/10] revised --- src/array.c | 45 +++++++++++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/src/array.c b/src/array.c index 13ed925..9f33d04 100644 --- a/src/array.c +++ b/src/array.c @@ -1,18 +1,27 @@ -#include - -int n; -int k; -int A[100000]; - - -int main(){ - int i, lb, ub; - scanf("%d%d", &n, &k); - for(i = 0; i < n; i++){ - scanf("%d", &A[i]); - } - - - - return 0; -} +#include + +int n; +int k; +int A[100000]; + + +int main() { + int lb, ub; + scanf("%d%d", &n, &k); + for (int 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 93d1282c75fb5026a17ec86dd17fee5184caa231 Mon Sep 17 00:00:00 2001 From: Naoki Tokuhiro Date: Tue, 28 Jun 2022 05:01:31 +0900 Subject: [PATCH 04/10] revised --- src/apple.c | 53 +++++++++++++++++++++++++++++++---------------------- 1 file changed, 31 insertions(+), 22 deletions(-) diff --git a/src/apple.c b/src/apple.c index 79b74e8..be30cff 100644 --- a/src/apple.c +++ b/src/apple.c @@ -1,23 +1,32 @@ -#include - -int n; -int k; -int A[100000]; - - -int main() { - int i, lb, ub; - scanf("%d%d", &n, &k); - 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; +#include +int n; +int k; +int A[100000]; + + +int p(int x) { + int s = 0; + for (int i = 0; i < n; i++) { + s += (A[i] + x - 1) / x; + } + if (s <= k) return 1; + else return 0; +} + +int main() { + int i, lb, ub; + scanf("%d%d", &n, &k); + for (i = 0; i < n; i++) { + scanf("%d", &A[i]); + } + + lb = 0; + ub = 1000000001; + while (ub - lb > 1) { + int mid = (ub + lb) / 2; + if (p(mid)) ub = mid; + else lb = mid; + } + printf("%d\n", ub); + return 0; } \ No newline at end of file From 16566e2d1f31747fb67a673debe0c0747617f691 Mon Sep 17 00:00:00 2001 From: Naoki Tokuhiro Date: Tue, 28 Jun 2022 05:37:23 +0900 Subject: [PATCH 05/10] revised --- src/spear.c | 49 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 32 insertions(+), 17 deletions(-) diff --git a/src/spear.c b/src/spear.c index 766d543..89450f9 100644 --- a/src/spear.c +++ b/src/spear.c @@ -1,17 +1,32 @@ -#include - -int n; -int k; -int A[100000]; - - -int main(){ - int i, lb, ub; - scanf("%d%d", &n, &k); - for(i = 0; i < n; i++){ - scanf("%d", &A[i]); - } - - - return 0; -} +#include + +int n; +int k; +int A[100000]; + +int p(int x) { + int s = 0; + if (x == 0) return 1; + for (int i = 0; i < n; i++) { + s += A[i] / x; + } + if (s >= k) return 1; + else return 0; +} + + +int main() { + int i, lb, ub; + scanf("%d%d", &n, &k); + for (i = 0; i < n; i++) { + scanf("%d", &A[i]); + } + lb = -1; ub = 1000000000; + while (ub - lb > 1) { + int mid = (lb + ub) / 2; + if (p(mid) == 0) ub = mid; + else lb = mid; + } + printf("%d\n", lb); + return 0; +} \ No newline at end of file From bc5c28ec2e73693c53ba8332a03942bc61fa190e Mon Sep 17 00:00:00 2001 From: Naoki Tokuhiro Date: Tue, 28 Jun 2022 06:16:08 +0900 Subject: [PATCH 06/10] revised --- src/works.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/works.c b/src/works.c index 766d543..c47ef40 100644 --- a/src/works.c +++ b/src/works.c @@ -4,6 +4,18 @@ int n; int k; int A[100000]; +int p(int x) { + int s = 0, cnt = 0; + for (int i = 0; i < n; i++) { + if (A[i] > x) return 0; + if (s + A[i] > x) { + s = A[i]; + cnt++; + } + else s += A[i]; + } + return (cnt < k); +} int main(){ int i, lb, ub; @@ -12,6 +24,13 @@ int main(){ scanf("%d", &A[i]); } + lb = 0; ub = 1000000001; + while (ub - lb > 1) { + int mid = (lb + ub) / 2; + if (p(mid)) ub = mid; + else lb = mid; + } + printf("%d\n", ub); return 0; } From 48b9901335e9cd0b3c264691efe990e8b60cbbf5 Mon Sep 17 00:00:00 2001 From: Naoki Tokuhiro Date: Tue, 28 Jun 2022 08:52:36 +0900 Subject: [PATCH 07/10] revised --- src/spear.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/spear.c b/src/spear.c index 89450f9..96955cc 100644 --- a/src/spear.c +++ b/src/spear.c @@ -21,7 +21,7 @@ int main() { for (i = 0; i < n; i++) { scanf("%d", &A[i]); } - lb = -1; ub = 1000000000; + lb = -1; ub = 1000000001; while (ub - lb > 1) { int mid = (lb + ub) / 2; if (p(mid) == 0) ub = mid; From a69b60d97bc01941d3cfec0c8101a6c49214337e Mon Sep 17 00:00:00 2001 From: Naoki Tokuhiro Date: Tue, 9 Aug 2022 10:49:30 +0900 Subject: [PATCH 08/10] revised --- src/works.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/works.c b/src/works.c index c47ef40..a2696a8 100644 --- a/src/works.c +++ b/src/works.c @@ -24,7 +24,7 @@ int main(){ scanf("%d", &A[i]); } - lb = 0; ub = 1000000001; + lb = 0; ub = 1000000000; while (ub - lb > 1) { int mid = (lb + ub) / 2; From e98024cc59b8332559b915a79ed4df7e001f5ef9 Mon Sep 17 00:00:00 2001 From: Naoki Tokuhiro Date: Tue, 9 Aug 2022 10:56:50 +0900 Subject: [PATCH 09/10] revised --- src/spear.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/spear.c b/src/spear.c index 96955cc..bf5406a 100644 --- a/src/spear.c +++ b/src/spear.c @@ -21,7 +21,7 @@ int main() { for (i = 0; i < n; i++) { scanf("%d", &A[i]); } - lb = -1; ub = 1000000001; + lb = 0; ub = 1000000001; while (ub - lb > 1) { int mid = (lb + ub) / 2; if (p(mid) == 0) ub = mid; From ca47bea1ba0260ce6bef44096f51dd68b69b302d Mon Sep 17 00:00:00 2001 From: Naoki Tokuhiro Date: Tue, 9 Aug 2022 11:01:48 +0900 Subject: [PATCH 10/10] revised --- src/apple.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/apple.c b/src/apple.c index be30cff..c1bc0a3 100644 --- a/src/apple.c +++ b/src/apple.c @@ -21,7 +21,7 @@ int main() { } lb = 0; - ub = 1000000001; + ub = 1000000000; while (ub - lb > 1) { int mid = (ub + lb) / 2; if (p(mid)) ub = mid;