From e3f10cc438daf907abd6fc68c9c041870298fbf2 Mon Sep 17 00:00:00 2001 From: Taichi Yamakawa Date: Sat, 16 Jan 2021 21:42:47 +0900 Subject: [PATCH 1/6] Erase atcoder/abc083B --- atcoder/abc083/B/main.cpp | 26 +------------------------- 1 file changed, 1 insertion(+), 25 deletions(-) diff --git a/atcoder/abc083/B/main.cpp b/atcoder/abc083/B/main.cpp index 66e82e06..6f3586a7 100644 --- a/atcoder/abc083/B/main.cpp +++ b/atcoder/abc083/B/main.cpp @@ -1,35 +1,11 @@ #include using namespace std; - -int digsum(int V) { - int sum = 0; - while (V > 0) - { - sum += V % 10; - V /= 10; - } - return sum; -} - -int solve(int N, int A, int B) { - int ans = 0; - for (int i = 1; i <= N; ++i) { - int sum = digsum(i); - if (sum >= A && sum <= B) { - ans += i; - } - } - return ans; -} +using ll = long long; int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); - int N, A, B; - cin >> N >> A >> B; - cout << solve(N, A, B) << endl; - return 0; } \ No newline at end of file From eb77e12d1bc1677709fe9317737c26839974c007 Mon Sep 17 00:00:00 2001 From: Taichi Yamakawa Date: Sat, 16 Jan 2021 22:49:34 +0900 Subject: [PATCH 2/6] atcoder/abc083A --- atcoder/abc083/A/main.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 atcoder/abc083/A/main.cpp diff --git a/atcoder/abc083/A/main.cpp b/atcoder/abc083/A/main.cpp new file mode 100644 index 00000000..78016f3a --- /dev/null +++ b/atcoder/abc083/A/main.cpp @@ -0,0 +1,22 @@ +#include + +using namespace std; +using ll = long long; + +int main() { + ios_base::sync_with_stdio(false); + cin.tie(0); cout.tie(0); + + int A, B, C, D; + cin >> A >> B >> C >> D; + int L = A + B, R = C + D; + if (L > R) { + cout << "Left" << endl; + } else if (L < R) { + cout << "Right" << endl; + } else { + cout << "Balanced" << endl; + } + + return 0; +} \ No newline at end of file From 99ffee7d8f20268d2afb556d16000e40a2d9ea06 Mon Sep 17 00:00:00 2001 From: Taichi Yamakawa Date: Sat, 16 Jan 2021 22:49:40 +0900 Subject: [PATCH 3/6] atcoder/abc083B --- atcoder/abc083/B/main.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/atcoder/abc083/B/main.cpp b/atcoder/abc083/B/main.cpp index 6f3586a7..9beaee1a 100644 --- a/atcoder/abc083/B/main.cpp +++ b/atcoder/abc083/B/main.cpp @@ -3,9 +3,34 @@ using namespace std; using ll = long long; +int N, A, B; + +int digsum(int m) { + int s = 0; + while (m > 0) { + s += m % 10; + m /= 10; + } + return s; +} + +int solve() { + int sum = 0; + for (int i = 1; i <= N; ++i) { + int ds = digsum(i); + if (ds >= A && ds <= B) { + sum += i; + } + } + return sum; +} + int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); + cin >> N >> A >> B; + cout << solve() << endl; + return 0; } \ No newline at end of file From 36720ba307a31b6875e820b5d2fc5419a4f71feb Mon Sep 17 00:00:00 2001 From: Taichi Yamakawa Date: Sat, 16 Jan 2021 22:49:47 +0900 Subject: [PATCH 4/6] atcoder/abc083C --- atcoder/abc083/C/main.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 atcoder/abc083/C/main.cpp diff --git a/atcoder/abc083/C/main.cpp b/atcoder/abc083/C/main.cpp new file mode 100644 index 00000000..3fde3060 --- /dev/null +++ b/atcoder/abc083/C/main.cpp @@ -0,0 +1,20 @@ +#include + +using namespace std; +using ll = long long; + +int main() { + ios_base::sync_with_stdio(false); + cin.tie(0); cout.tie(0); + + ll X, Y; + cin >> X >> Y; + int len = 1; + while (X * 2 <= Y) { + ++len; + X *= 2; + } + cout << len << endl; + + return 0; +} \ No newline at end of file From 812659718165c503da4884876ddd5c46cf95e26d Mon Sep 17 00:00:00 2001 From: Taichi Yamakawa Date: Sat, 16 Jan 2021 22:49:56 +0900 Subject: [PATCH 5/6] atcoder/abc083D --- atcoder/abc083/D/main.cpp | 50 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 atcoder/abc083/D/main.cpp diff --git a/atcoder/abc083/D/main.cpp b/atcoder/abc083/D/main.cpp new file mode 100644 index 00000000..6e3fe986 --- /dev/null +++ b/atcoder/abc083/D/main.cpp @@ -0,0 +1,50 @@ +#include + +using namespace std; +using ll = long long; + +int count(string const& S) { + int const n = S.size(); + int ans = 0; + int i = 0; + int l = 0; + int m = 0; + while (i < n) { + if (S[i] == '1') { + if (m == 0) l = i; + ++m; + } else if (m > 0) { + int r = n - l - m; + int k = min({ n - l, n - r, l + m, m + r }); + ans = max(ans, k); + m = 0; + } + ++i; + } + if (m > 0) { + int r = n - l - m; + int k = min({ n - l, n - r, l + m, m + r }); + ans = max(ans, k); + } + return ans; +} + +int solve(string& S) { + int ans = count(S); + for (int i = 0; i < S.size(); ++i) { + S[i] = S[i] == '0' ? '1' : '0'; + } + ans = max(ans, count(S)); + return ans; +} + +int main() { + ios_base::sync_with_stdio(false); + cin.tie(0); cout.tie(0); + + string S; + cin >> S; + cout << solve(S) << endl; + + return 0; +} \ No newline at end of file From 1610861791511333917c0e731a75f25ac73b6921 Mon Sep 17 00:00:00 2001 From: Taichi Yamakawa Date: Sat, 16 Jan 2021 22:57:13 +0900 Subject: [PATCH 6/6] atcoder/abc083D (feedback from editorial) --- atcoder/abc083/D/main.cpp | 37 +++++++------------------------------ 1 file changed, 7 insertions(+), 30 deletions(-) diff --git a/atcoder/abc083/D/main.cpp b/atcoder/abc083/D/main.cpp index 6e3fe986..94dc41dc 100644 --- a/atcoder/abc083/D/main.cpp +++ b/atcoder/abc083/D/main.cpp @@ -3,38 +3,15 @@ using namespace std; using ll = long long; -int count(string const& S) { - int const n = S.size(); - int ans = 0; - int i = 0; - int l = 0; - int m = 0; - while (i < n) { - if (S[i] == '1') { - if (m == 0) l = i; - ++m; - } else if (m > 0) { - int r = n - l - m; - int k = min({ n - l, n - r, l + m, m + r }); - ans = max(ans, k); - m = 0; - } - ++i; - } - if (m > 0) { - int r = n - l - m; - int k = min({ n - l, n - r, l + m, m + r }); - ans = max(ans, k); - } - return ans; -} - int solve(string& S) { - int ans = count(S); - for (int i = 0; i < S.size(); ++i) { - S[i] = S[i] == '0' ? '1' : '0'; + const int N = S.size(); + int ans = N; + for (int i = 0; i + 1 < N; ++i) { + if (S[i] != S[i+1]) { + int m = max(i+1,N-(i+1)); + ans = min(ans, m); + } } - ans = max(ans, count(S)); return ans; }