From 0578db81737aaa736ef1f13053e5dc08cd0a6054 Mon Sep 17 00:00:00 2001 From: Taichi Yamakawa Date: Mon, 11 Jan 2021 18:24:18 +0900 Subject: [PATCH 1/4] atcoder/abc076A --- atcoder/abc076/A/main.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 atcoder/abc076/A/main.cpp diff --git a/atcoder/abc076/A/main.cpp b/atcoder/abc076/A/main.cpp new file mode 100644 index 00000000..1285177b --- /dev/null +++ b/atcoder/abc076/A/main.cpp @@ -0,0 +1,15 @@ +#include + +using namespace std; +using ll = long long; + +int main() { + ios_base::sync_with_stdio(false); + cin.tie(0); cout.tie(0); + + int R, G; + cin >> R >> G; + cout << (2 * G - R) << endl; + + return 0; +} \ No newline at end of file From 38762bf2cc16fd4dbf03016ba51fc9bbcabbbde6 Mon Sep 17 00:00:00 2001 From: Taichi Yamakawa Date: Mon, 11 Jan 2021 18:24:38 +0900 Subject: [PATCH 2/4] atcoder/abc076B --- atcoder/abc076/B/main.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 atcoder/abc076/B/main.cpp diff --git a/atcoder/abc076/B/main.cpp b/atcoder/abc076/B/main.cpp new file mode 100644 index 00000000..79fa336f --- /dev/null +++ b/atcoder/abc076/B/main.cpp @@ -0,0 +1,24 @@ +#include + +using namespace std; +using ll = long long; + +int solve(int N, int K) { + int v = 1; + for (int i = 0; i < N; ++i) { + int nv1 = v * 2, nv2 = v + K; + v = min(nv1, nv2); + } + return v; +} + +int main() { + ios_base::sync_with_stdio(false); + cin.tie(0); cout.tie(0); + + int N, K; + cin >> N >> K; + cout << solve(N, K) << endl; + + return 0; +} \ No newline at end of file From 1581cd8d0dc4a274c0ffb38d1aac8ae826964a25 Mon Sep 17 00:00:00 2001 From: Taichi Yamakawa Date: Mon, 11 Jan 2021 18:25:00 +0900 Subject: [PATCH 3/4] atcoder/abc076C --- atcoder/abc076/C/main.cpp | 41 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 atcoder/abc076/C/main.cpp diff --git a/atcoder/abc076/C/main.cpp b/atcoder/abc076/C/main.cpp new file mode 100644 index 00000000..3a7110ab --- /dev/null +++ b/atcoder/abc076/C/main.cpp @@ -0,0 +1,41 @@ +#include + +using namespace std; +using ll = long long; + +string const NOP = "UNRESTORABLE"; +string S, T; + +bool solve(vector& W, int s) { + for (int i = 0; i < s; ++i) { + if (W[i] == '?') W[i] = 'a'; + } + for (int i = 0; i < T.size(); ++i) { + if (W[s+i] == '?') { + W[s+i] = T[i]; + } + if (W[s+i] != T[i]) return false; + } + for (int i = s + T.size(); i < S.size(); ++i) { + if (W[i] == '?') W[i] = 'a'; + } + return true; +} + +string solve() { + for (int i = S.size() - T.size(); i >= 0; --i) { + vector W(S.begin(), S.end()); + if (solve(W, i)) return string(W.begin(), W.end()); + } + return NOP; +} + +int main() { + ios_base::sync_with_stdio(false); + cin.tie(0); cout.tie(0); + + cin >> S >> T; + cout << solve() << endl; + + return 0; +} \ No newline at end of file From f256611b70729082b9314cafe355e77f83081046 Mon Sep 17 00:00:00 2001 From: Taichi Yamakawa Date: Mon, 11 Jan 2021 18:25:08 +0900 Subject: [PATCH 4/4] atcoder/abc076D --- atcoder/abc076/D/main.cpp | 60 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 atcoder/abc076/D/main.cpp diff --git a/atcoder/abc076/D/main.cpp b/atcoder/abc076/D/main.cpp new file mode 100644 index 00000000..965daa6f --- /dev/null +++ b/atcoder/abc076/D/main.cpp @@ -0,0 +1,60 @@ +#include + +using namespace std; +using ll = long long; + +int N; +vector ts; +vector vs; + +double solve() { + int T = 0; + vector> cs(N); + for (int i = 0; i < N; ++i) { + int l = T, r = T + ts[i], v = vs[i]; + cs[i] = { l, r, v }; + T += ts[i]; + } + cs.push_back({ 0, 0, 0 }); + cs.push_back({ T, T, 0 }); + const auto minv = [&](double t) { + double res = 100; + for (auto const& c : cs) { + auto l = c[0], r = c[1], v = c[2]; + if (t < l) { + res = min(res, v + (l - t)); + } else if (t > r) { + res = min(res, v + (t - r)); + } else { + res = min(res, double(v)); + } + } + return res; + }; + + double S = 0; + for (int tt = 0; tt < 2 * T; ++tt) { + double t = tt * 0.5, nt = (tt + 1) * 0.5; + double v = minv(t), nv = minv(nt); + S += 0.5 * (v + nv) * 0.5; + } + return S; +} + +int main() { + ios_base::sync_with_stdio(false); + cin.tie(0); cout.tie(0); + + cin >> N; + ts.assign(N, 0); + vs.assign(N, 0); + for (int i = 0; i < N; ++i) { + cin >> ts[i]; + } + for (int i = 0; i < N; ++i) { + cin >> vs[i]; + } + cout << fixed << setprecision(3) << solve() << endl; + + return 0; +} \ No newline at end of file