From e3fc50157271779c346e3084c75496874e24f8d1 Mon Sep 17 00:00:00 2001 From: Riku Onozawa Date: Tue, 28 Jun 2022 11:31:57 +0900 Subject: [PATCH 1/8] revised --- src/array.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/array.c b/src/array.c index 13ed925..6a7a545 100644 --- a/src/array.c +++ b/src/array.c @@ -4,15 +4,24 @@ 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 = 0; + 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; } From 3d7e98f484ab61efa4283ba0ad30379a00d90c60 Mon Sep 17 00:00:00 2001 From: Riku Onozawa Date: Tue, 28 Jun 2022 11:34:37 +0900 Subject: [PATCH 2/8] revised --- src/spear.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/spear.c b/src/spear.c index 766d543..a04b953 100644 --- a/src/spear.c +++ b/src/spear.c @@ -8,10 +8,25 @@ int A[100000]; int main(){ int i, lb, ub; scanf("%d%d", &n, &k); - for(i = 0; i < n; i++){ + for(i = 1; i <= n; i++){ scanf("%d", &A[i]); } + lb = 0; + ub = 1000000000; + int siguma; + while(ub - lb > 1) { + int mid = (lb + ub) / 2; + for(i = 1; i <=n; i++){ + siguma = siguma + A[i] / mid; + } + if(siguma >= k){ + ub = mid; + } + else{ + lb = mid; + } + } - + printf("%d\n", ub); return 0; } From 02b16cc6030b959c97d91118a90f731a2977b292 Mon Sep 17 00:00:00 2001 From: Riku Onozawa Date: Tue, 28 Jun 2022 11:35:09 +0900 Subject: [PATCH 3/8] revised --- src/apple.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/apple.c b/src/apple.c index 766d543..2c61da0 100644 --- a/src/apple.c +++ b/src/apple.c @@ -4,14 +4,28 @@ int n; int k; int A[100000]; - int main(){ int i, lb, ub; scanf("%d%d", &n, &k); - for(i = 0; i < n; i++){ + for(i = 1; i <= n; i++){ scanf("%d", &A[i]); } + lb = 0; + ub = 1000000000; + int siguma; + while(ub - lb > 1) { + int mid = (lb + ub) / 2; + for(i = 1; i <=n; i++){ + siguma = siguma + (A[i] + mid - 1) / mid; + } + if(siguma <= k){ + ub = mid; + } + else{ + lb = mid; + } + } - + printf("%d\n" , ub); return 0; } From 873656b5c808f5fba0ee9a30f38f195765feefc5 Mon Sep 17 00:00:00 2001 From: Riku Onozawa Date: Tue, 28 Jun 2022 11:38:46 +0900 Subject: [PATCH 4/8] revised --- src/apple.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/apple.c b/src/apple.c index 2c61da0..a7d0906 100644 --- a/src/apple.c +++ b/src/apple.c @@ -15,6 +15,7 @@ int main(){ int siguma; while(ub - lb > 1) { int mid = (lb + ub) / 2; + siguma = 0; for(i = 1; i <=n; i++){ siguma = siguma + (A[i] + mid - 1) / mid; } From 34db471cb9b16c514ffc620c9fcf6c1dd72e43ac Mon Sep 17 00:00:00 2001 From: Riku Onozawa Date: Tue, 28 Jun 2022 11:39:16 +0900 Subject: [PATCH 5/8] revaised --- src/spear.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/spear.c b/src/spear.c index a04b953..6543825 100644 --- a/src/spear.c +++ b/src/spear.c @@ -16,6 +16,7 @@ int main(){ int siguma; while(ub - lb > 1) { int mid = (lb + ub) / 2; + siguma = 0; for(i = 1; i <=n; i++){ siguma = siguma + A[i] / mid; } From c451d16e215aa70f95ca16283010df7412f068b4 Mon Sep 17 00:00:00 2001 From: Riku Onozawa Date: Tue, 28 Jun 2022 11:41:21 +0900 Subject: [PATCH 6/8] revised --- src/spear.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/spear.c b/src/spear.c index 6543825..dfbdaed 100644 --- a/src/spear.c +++ b/src/spear.c @@ -21,10 +21,10 @@ int main(){ siguma = siguma + A[i] / mid; } if(siguma >= k){ - ub = mid; + lb = mid; } else{ - lb = mid; + ub = mid; } } From c4f541be694edf588990c70222f9b64897675f57 Mon Sep 17 00:00:00 2001 From: Riku Onozawa Date: Tue, 5 Jul 2022 14:39:10 +0900 Subject: [PATCH 7/8] revised --- src/apple.c | 4 ++-- src/array.c | 2 +- src/spear.c | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/apple.c b/src/apple.c index a7d0906..b712291 100644 --- a/src/apple.c +++ b/src/apple.c @@ -7,7 +7,7 @@ int A[100000]; int main(){ int i, lb, ub; scanf("%d%d", &n, &k); - for(i = 1; i <= n; i++){ + for(i = 0; i < n; i++){ scanf("%d", &A[i]); } lb = 0; @@ -16,7 +16,7 @@ int main(){ while(ub - lb > 1) { int mid = (lb + ub) / 2; siguma = 0; - for(i = 1; i <=n; i++){ + for(i = 0; i < n; i++){ siguma = siguma + (A[i] + mid - 1) / mid; } if(siguma <= k){ diff --git a/src/array.c b/src/array.c index 6a7a545..73311be 100644 --- a/src/array.c +++ b/src/array.c @@ -10,7 +10,7 @@ int main(){ for(i = 0; i < n; i++){ scanf("%d", &A[i]); } - lb = 0; + lb = -1; ub = n; while(ub - lb > 1) { int mid = (lb + ub) / 2; diff --git a/src/spear.c b/src/spear.c index dfbdaed..da14795 100644 --- a/src/spear.c +++ b/src/spear.c @@ -8,7 +8,7 @@ int A[100000]; int main(){ int i, lb, ub; scanf("%d%d", &n, &k); - for(i = 1; i <= n; i++){ + for(i = 0; i < n; i++){ scanf("%d", &A[i]); } lb = 0; @@ -17,7 +17,7 @@ int main(){ while(ub - lb > 1) { int mid = (lb + ub) / 2; siguma = 0; - for(i = 1; i <=n; i++){ + for(i = 0; i < n; i++){ siguma = siguma + A[i] / mid; } if(siguma >= k){ From 17a621427def7e2cee500435dec44154136f3f30 Mon Sep 17 00:00:00 2001 From: Riku Onozawa Date: Mon, 8 Aug 2022 23:39:22 +0900 Subject: [PATCH 8/8] revised --- src/spear.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/spear.c b/src/spear.c index da14795..52d028c 100644 --- a/src/spear.c +++ b/src/spear.c @@ -12,7 +12,7 @@ int main(){ scanf("%d", &A[i]); } lb = 0; - ub = 1000000000; + ub = 1000000001; int siguma; while(ub - lb > 1) { int mid = (lb + ub) / 2; @@ -28,6 +28,6 @@ int main(){ } } - printf("%d\n", ub); + printf("%d\n", lb); return 0; }