From 799e1f3d063a4076b1b45011fa8df81b7f03192e Mon Sep 17 00:00:00 2001 From: xxarupakaxx Date: Tue, 28 Jun 2022 01:11:28 +0900 Subject: [PATCH 1/7] finish array.c --- src/array.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/src/array.c b/src/array.c index 13ed925..ae37751 100644 --- a/src/array.c +++ b/src/array.c @@ -4,15 +4,30 @@ int n; int k; int A[100000]; - -int main(){ - int i, lb, ub; +int main() +{ + int i; scanf("%d%d", &n, &k); - for(i = 0; i < n; i++){ + for (i = 0; i < n; i++) + { scanf("%d", &A[i]); } + int lb = -1; + int ub = n; + + while (ub - lb > 1) + { + int mid = (lb + ub) / 2; + + if (A[mid] >= k) + ub = mid; + + else + lb = mid; + } + printf("%d", ub); return 0; } From ab598cbddf1828ce572434c36ece663228dc6c7b Mon Sep 17 00:00:00 2001 From: xxarupakaxx Date: Tue, 28 Jun 2022 01:29:45 +0900 Subject: [PATCH 2/7] finish apple.c --- .vscode/settings.json | 1 + src/apple.c | 35 +++++++++++++++++++++++++++++++---- 2 files changed, 32 insertions(+), 4 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1 @@ + diff --git a/src/apple.c b/src/apple.c index 766d543..5905cda 100644 --- a/src/apple.c +++ b/src/apple.c @@ -4,14 +4,41 @@ int n; int k; int A[100000]; - -int main(){ - int i, lb, ub; +int main() +{ + int i; scanf("%d%d", &n, &k); - for(i = 0; i < n; i++){ + for (i = 0; i < n; i++) + { scanf("%d", &A[i]); } + int lb = -1; + int ub = 100000000; + + while (ub - lb > 1) + { + int mid = (lb + ub) / 2; + + if (p(mid)) + ub = mid; + + else + lb = mid; + } + + printf("%d", ub); return 0; } + +unsigned int p(int x) +{ + int sum = 0; + for (int i = 0; i < n; i++) + { + sum += (A[i] + x - 1) / x; + } + + return sum <= k; +} From abbec9b889865bae85b06386f6fcaae712712626 Mon Sep 17 00:00:00 2001 From: xxarupakaxx Date: Tue, 28 Jun 2022 02:03:43 +0900 Subject: [PATCH 3/7] finish spear.c --- src/spear.c | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/src/spear.c b/src/spear.c index 766d543..c82ef7c 100644 --- a/src/spear.c +++ b/src/spear.c @@ -4,14 +4,40 @@ int n; int k; int A[100000]; - -int main(){ - int i, lb, ub; +int main() +{ + int i; scanf("%d%d", &n, &k); - for(i = 0; i < n; i++){ + for (i = 0; i < n; i++) + { scanf("%d", &A[i]); } + int lb = 0; + int ub = 100000000; + + while (ub - lb > 1) + { + int mid = (lb + ub) / 2; + + if (p(mid)) + ub = mid; + else + lb = mid; + } + + printf("%d", lb); return 0; } + +unsigned int p(int x) +{ + int sum = 0; + for (int i = 0; i < n; i++) + { + sum += A[i] / x; + } + + return sum < k; +} From bc879000cf8ca11f635acde6e2317a2a28b57d13 Mon Sep 17 00:00:00 2001 From: xxarupakaxx Date: Tue, 28 Jun 2022 03:16:57 +0900 Subject: [PATCH 4/7] finish work.c --- src/works.c | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 81 insertions(+), 3 deletions(-) diff --git a/src/works.c b/src/works.c index 766d543..28242a4 100644 --- a/src/works.c +++ b/src/works.c @@ -4,14 +4,92 @@ int n; int k; int A[100000]; +int main() +{ + int i; + scanf("%d%d", &n, &k); + for (i = 0; i < n; i++) + { + scanf("%d", &A[i]); + } + + int lb = 0; + int ub = 100000000; + + while (ub - lb > 1) + { + int mid = (lb + ub) / 2; + + if (p(mid)) + ub = mid; + else + lb = mid; + } + + printf("%d", lb); -int main(){ - int i, lb, ub; + return 0; +} + +unsigned int p(int x) +{ + int sum = 0; + for (int i = 0; i < n; i++) + { + sum += A[i] / x; + } + + return sum < k; +} +#include + +int n; +int k; +int A[100000]; + +int main() +{ + int i; scanf("%d%d", &n, &k); - for(i = 0; i < n; i++){ + for (i = 0; i < n; i++) + { scanf("%d", &A[i]); } + int lb = 0; + int ub = 100000000; + + while (ub - lb > 1) + { + int mid = (lb + ub) / 2; + + if (p(mid)) + ub = mid; + else + lb = mid; + } + + printf("%d", ub); return 0; } + +unsigned int p(int x) +{ + int sum = 0; + int a = 1; + for (int i = 0; i < n; i++) + { + if (A[i] > x) + return 0; + + sum += A[i]; + if (sum > x) + { + sum = A[i]; + a++; + } + } + + return a <= k; +} From 213b791b3bc524239a94b53ade74c9bc697fa527 Mon Sep 17 00:00:00 2001 From: xxarupakaxx Date: Mon, 4 Jul 2022 14:06:10 +0900 Subject: [PATCH 5/7] =?UTF-8?q?main=E3=81=AE=E5=89=8D=E3=81=ABp=E3=82=92?= =?UTF-8?q?=E5=AE=9A=E7=BE=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/apple.c | 22 +++++++++++----------- src/spear.c | 22 +++++++++++----------- src/works.c | 52 +--------------------------------------------------- 3 files changed, 23 insertions(+), 73 deletions(-) diff --git a/src/apple.c b/src/apple.c index 5905cda..3391205 100644 --- a/src/apple.c +++ b/src/apple.c @@ -4,6 +4,17 @@ int n; int k; int A[100000]; +unsigned int p(int x) +{ + int sum = 0; + for (int i = 0; i < n; i++) + { + sum += (A[i] + x - 1) / x; + } + + return sum <= k; +} + int main() { int i; @@ -31,14 +42,3 @@ int main() return 0; } - -unsigned int p(int x) -{ - int sum = 0; - for (int i = 0; i < n; i++) - { - sum += (A[i] + x - 1) / x; - } - - return sum <= k; -} diff --git a/src/spear.c b/src/spear.c index c82ef7c..7173a8a 100644 --- a/src/spear.c +++ b/src/spear.c @@ -4,6 +4,17 @@ int n; int k; int A[100000]; +unsigned int p(int x) +{ + int sum = 0; + for (int i = 0; i < n; i++) + { + sum += A[i] / x; + } + + return sum < k; +} + int main() { int i; @@ -30,14 +41,3 @@ int main() return 0; } - -unsigned int p(int x) -{ - int sum = 0; - for (int i = 0; i < n; i++) - { - sum += A[i] / x; - } - - return sum < k; -} diff --git a/src/works.c b/src/works.c index 28242a4..4876ab4 100644 --- a/src/works.c +++ b/src/works.c @@ -4,32 +4,6 @@ int n; int k; int A[100000]; -int main() -{ - int i; - scanf("%d%d", &n, &k); - for (i = 0; i < n; i++) - { - scanf("%d", &A[i]); - } - - int lb = 0; - int ub = 100000000; - - while (ub - lb > 1) - { - int mid = (lb + ub) / 2; - - if (p(mid)) - ub = mid; - else - lb = mid; - } - - printf("%d", lb); - - return 0; -} unsigned int p(int x) { @@ -41,11 +15,7 @@ unsigned int p(int x) return sum < k; } -#include -int n; -int k; -int A[100000]; int main() { @@ -69,27 +39,7 @@ int main() lb = mid; } - printf("%d", ub); + printf("%d", lb); return 0; } - -unsigned int p(int x) -{ - int sum = 0; - int a = 1; - for (int i = 0; i < n; i++) - { - if (A[i] > x) - return 0; - - sum += A[i]; - if (sum > x) - { - sum = A[i]; - a++; - } - } - - return a <= k; -} From 60598ae6324c3988bc242bed6e34e2236f742fcd Mon Sep 17 00:00:00 2001 From: xxarupakaxx Date: Mon, 4 Jul 2022 14:07:31 +0900 Subject: [PATCH 6/7] =?UTF-8?q?0=E3=81=AB=E3=81=97=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/apple.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/apple.c b/src/apple.c index 3391205..0bb6cbe 100644 --- a/src/apple.c +++ b/src/apple.c @@ -24,7 +24,7 @@ int main() scanf("%d", &A[i]); } - int lb = -1; + int lb = 0; int ub = 100000000; while (ub - lb > 1) From 36977a3d9b0f2f871c3b32b84f81c1bc5bac934c Mon Sep 17 00:00:00 2001 From: xxarupakaxx Date: Mon, 8 Aug 2022 20:41:34 +0900 Subject: [PATCH 7/7] fix --- src/apple.c | 2 +- src/spear.c | 2 +- src/works.c | 22 +++++++++++++++------- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/apple.c b/src/apple.c index 0bb6cbe..fa3fd56 100644 --- a/src/apple.c +++ b/src/apple.c @@ -25,7 +25,7 @@ int main() } int lb = 0; - int ub = 100000000; + int ub = 1000000000; while (ub - lb > 1) { diff --git a/src/spear.c b/src/spear.c index 7173a8a..ae166b4 100644 --- a/src/spear.c +++ b/src/spear.c @@ -25,7 +25,7 @@ int main() } int lb = 0; - int ub = 100000000; + int ub = 1000000000; while (ub - lb > 1) { diff --git a/src/works.c b/src/works.c index 4876ab4..b6a25fc 100644 --- a/src/works.c +++ b/src/works.c @@ -4,19 +4,27 @@ int n; int k; int A[100000]; - unsigned int p(int x) { int sum = 0; + int w = 1; for (int i = 0; i < n; i++) { - sum += A[i] / x; + if (A[i] > x) + return 0; + if (sum + A[i] > x) + { + sum = A[i]; + w++; + } + else + { + sum += A[i]; + } } - - return sum < k; + return w <= k; } - int main() { int i; @@ -27,7 +35,7 @@ int main() } int lb = 0; - int ub = 100000000; + int ub = 1000000000; while (ub - lb > 1) { @@ -39,7 +47,7 @@ int main() lb = mid; } - printf("%d", lb); + printf("%d", ub); return 0; }