From 9f33283ce28fb451645dddd225408a30a0895f24 Mon Sep 17 00:00:00 2001 From: Soma Ito Date: Tue, 28 Jun 2022 12:06:51 +0900 Subject: [PATCH 1/4] revised --- src/apple.c | 17 ++++++++++++++++- src/array.c | 12 ++++++++++-- src/spear.c | 17 +++++++++++++++++ src/works.c | 25 +++++++++++++++++++++++++ 4 files changed, 68 insertions(+), 3 deletions(-) diff --git a/src/apple.c b/src/apple.c index 766d543..0332e28 100644 --- a/src/apple.c +++ b/src/apple.c @@ -4,6 +4,13 @@ int n; int k; int A[100000]; +int p(int x){ + int sum = 0; + for(int i=0; i 1){ + int mid = (lb + ub) / 2; + if( p(mid)) ub = mid; + else lb = mid; + } + printf("%d\n", ub); return 0; -} + } \ No newline at end of file diff --git a/src/array.c b/src/array.c index 13ed925..cae30b7 100644 --- a/src/array.c +++ b/src/array.c @@ -12,7 +12,15 @@ int main(){ 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 diff --git a/src/spear.c b/src/spear.c index 766d543..3a98d5c 100644 --- a/src/spear.c +++ b/src/spear.c @@ -5,6 +5,15 @@ int k; int A[100000]; +int sp(int l){ + int sum=0; + for(int i=0; i=k)return 0; + else return 1; +} + int main(){ int i, lb, ub; scanf("%d%d", &n, &k); @@ -12,6 +21,14 @@ int main(){ scanf("%d", &A[i]); } + lb = -1; + ub = 1e9; + while(ub - lb > 1){ + int mid = (lb + ub) / 2; + if(sp((mid))) ub = mid; + else lb = mid; + } + printf("%d\n", lb); return 0; } diff --git a/src/works.c b/src/works.c index 766d543..0ec564a 100644 --- a/src/works.c +++ b/src/works.c @@ -4,6 +4,23 @@ int n; int k; int A[100000]; +int wr(int x){ + int worker = 1; + int work = 0; + for(int i = 0; i < n; i++ ){ + if(work + A[i] <= x){ + work = work + A[i]; + } + else if(A[i] <= x){ + work=A[i]; + worker++; + } + else{ + return 0; + } + } + return worker <= k; +} int main(){ int i, lb, ub; @@ -12,6 +29,14 @@ int main(){ scanf("%d", &A[i]); } + lb = -1; + ub = 1e9; + while(ub - lb > 1){ + int mid = (lb + ub) / 2; + if(wr((mid))) ub = mid; + else lb = mid; + } + printf("%d\n", ub); return 0; } From b43c9dbb15cb3a07929c2fc1354d39bcb298f9e6 Mon Sep 17 00:00:00 2001 From: Soma Ito Date: Tue, 9 Aug 2022 09:58:32 +0900 Subject: [PATCH 2/4] revised --- src/apple.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/apple.c b/src/apple.c index 0332e28..7150e80 100644 --- a/src/apple.c +++ b/src/apple.c @@ -19,7 +19,7 @@ int main(){ scanf("%d", &A[i]); } - lb = -1; + lb = 1; ub = 1e9; while(ub - lb > 1){ int mid = (lb + ub) / 2; From 5e995ae18303b030752e442aef2b937548e15539 Mon Sep 17 00:00:00 2001 From: Soma Ito Date: Tue, 9 Aug 2022 10:15:43 +0900 Subject: [PATCH 3/4] revised --- src/apple.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/apple.c b/src/apple.c index 7150e80..f9abf8e 100644 --- a/src/apple.c +++ b/src/apple.c @@ -19,7 +19,7 @@ int main(){ scanf("%d", &A[i]); } - lb = 1; + lb = 0; ub = 1e9; while(ub - lb > 1){ int mid = (lb + ub) / 2; From 7afcd4ac10708590d94bdca8acb529f3dec79d6a Mon Sep 17 00:00:00 2001 From: Soma Ito Date: Tue, 9 Aug 2022 10:23:53 +0900 Subject: [PATCH 4/4] revised --- src/spear.c | 4 ++-- src/works.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/spear.c b/src/spear.c index 3a98d5c..e67b550 100644 --- a/src/spear.c +++ b/src/spear.c @@ -21,8 +21,8 @@ int main(){ scanf("%d", &A[i]); } - lb = -1; - ub = 1e9; + lb = 0; + ub = 1e9 + 1; while(ub - lb > 1){ int mid = (lb + ub) / 2; if(sp((mid))) ub = mid; diff --git a/src/works.c b/src/works.c index 0ec564a..b587da8 100644 --- a/src/works.c +++ b/src/works.c @@ -29,7 +29,7 @@ int main(){ scanf("%d", &A[i]); } - lb = -1; + lb = 0; ub = 1e9; while(ub - lb > 1){ int mid = (lb + ub) / 2;