From 8c0d172f36674350d28329078922fdbd33788654 Mon Sep 17 00:00:00 2001 From: yenru0 Date: Fri, 26 Jun 2026 20:02:25 +0900 Subject: [PATCH] complete jungol/3521.cpp jungol/4520.cpp qoj/1.cpp --- storage/jungol/cpp/3521.cpp | 47 ++++++++++++++++++++++++++++++++++ storage/jungol/cpp/4520.cpp | 50 +++++++++++++++++++++++++++++++++++++ storage/qoj/cpp/1.cpp | 39 +++++++++++++++++++++++++++++ 3 files changed, 136 insertions(+) create mode 100644 storage/jungol/cpp/3521.cpp create mode 100644 storage/jungol/cpp/4520.cpp create mode 100644 storage/qoj/cpp/1.cpp diff --git a/storage/jungol/cpp/3521.cpp b/storage/jungol/cpp/3521.cpp new file mode 100644 index 0000000..4c25ee9 --- /dev/null +++ b/storage/jungol/cpp/3521.cpp @@ -0,0 +1,47 @@ +#include +#include +#include +#include + +#define let auto +#define fn auto +#define usize size_t +#define u64 uint64_t +using namespace std; + +fn fastio() { + ios::sync_with_stdio(false); + cin.tie(nullptr); +} + +fn main() -> int { + fastio(); + + let grams = vector{1, 2, 4, 8, 16}; + let counts = vector(5); + + for (usize i = 0; i < 5; i++) { + cin >> counts[i]; + } + + usize n; + cin >> n; + + let usage = 0; + let i = 4; + while (i >= 0 && n > 0) { + if (counts[i] > 0 && n >= grams[i]) { + n -= grams[i]; + counts[i] -= 1; + usage += 1; + } else { + i--; + } + } + + if (n != 0) { + cout << "impossible" << endl; + } else { + cout << usage << endl; + } +} \ No newline at end of file diff --git a/storage/jungol/cpp/4520.cpp b/storage/jungol/cpp/4520.cpp new file mode 100644 index 0000000..2645f2f --- /dev/null +++ b/storage/jungol/cpp/4520.cpp @@ -0,0 +1,50 @@ +#include +#include +#include +#include + +#define let auto +#define fn auto +typedef size_t usize; +using namespace std; + +fn fastio() { + ios::sync_with_stdio(false); + cin.tie(nullptr); +} + +fn main() -> int { + usize n, k; + cin >> n >> k; + let line = vector(n); + let valid = vector(n, false); + for (usize i = 0; i < n; i++) { + char t; + cin >> t; + + line[i] = t; + if (t == 'H') { + valid[i] = true; + } + } + + // left assoc + + let count = 0; + for (usize i = 0; i < n; i++) { + if (line[i] == 'P') { + let left = i >= k ? i - k : 0; + let right = i + k >= n ? n - 1 : i + k; + + for (usize j = left; j <= right; j++) { + if (valid[j]) { + count += 1; + valid[j] = false; + break; + } + } + } + } + + cout << count << endl; +} \ No newline at end of file diff --git a/storage/qoj/cpp/1.cpp b/storage/qoj/cpp/1.cpp new file mode 100644 index 0000000..4e4e2da --- /dev/null +++ b/storage/qoj/cpp/1.cpp @@ -0,0 +1,39 @@ +#include +#include +#include + +#define let auto +#define fn auto +#define usize size_t +using namespace std; + +fn fastio() { + ios::sync_with_stdio(false); + cin.tie(nullptr); +} + +#if 0 +fn main() -> int { + fastio(); + usize n, s = 0, t; + cin >> n; + + for (usize i = 0; i < n; i++) { + cin >> t; + s += t; + } + cout << s << endl; +} + +#else +fn main() -> int { + fastio(); + usize k = 100'000'008; + usize n; + cin >> n; + for (usize i = 0; i < n; i++) { + cout << k << " "; + } + cout << endl; +} +#endif \ No newline at end of file