From 3189ed17a916c6b01a9e81ca9d3e139938af3e96 Mon Sep 17 00:00:00 2001 From: movingsummer Date: Mon, 27 Jan 2025 00:36:30 +0900 Subject: [PATCH 1/2] 250126 --- dongha/250126/15889.cpp | 32 ++++++++++++++++++++++++++ dongha/250126/2302.cpp | 23 +++++++++++++++++++ dongha/250126/5464.cpp | 51 +++++++++++++++++++++++++++++++++++++++++ dongha/250126/7795.cpp | 28 ++++++++++++++++++++++ 4 files changed, 134 insertions(+) create mode 100644 dongha/250126/15889.cpp create mode 100644 dongha/250126/2302.cpp create mode 100644 dongha/250126/5464.cpp create mode 100644 dongha/250126/7795.cpp diff --git a/dongha/250126/15889.cpp b/dongha/250126/15889.cpp new file mode 100644 index 0000000..09ab989 --- /dev/null +++ b/dongha/250126/15889.cpp @@ -0,0 +1,32 @@ +#include +using i64 = long long; + +int main() { + std::cin.tie(nullptr)->sync_with_stdio(false); + int n; + std::cin >> n; + std::vector a(n); + for (int i = 0; i < n; ++i) { + std::cin >> a[i]; + } + if (n == 1) { + std::cout << "권병장님, 중대장님이 찾으십니다\n"; + return 0; + } + std::vector b(n); + for (int i = 0; i < n - 1; ++i) { + std::cin >> b[i]; + } + int max = 0; + for (int i = 0; i < n - 1; ++i) { + if (max >= a[i]) { + max = std::max(max, a[i] + b[i]); + } + } + + if (max >= a.back()) { + std::cout << "권병장님, 중대장님이 찾으십니다\n"; + } else { + std::cout << "엄마 나 전역 늦어질 것 같아\n"; + } +} \ No newline at end of file diff --git a/dongha/250126/2302.cpp b/dongha/250126/2302.cpp new file mode 100644 index 0000000..afc1d22 --- /dev/null +++ b/dongha/250126/2302.cpp @@ -0,0 +1,23 @@ +#include +using i64 = long long; + +int main() { + std::cin.tie(nullptr)->sync_with_stdio(false); + int n, m, ans = 1; + std::cin >> n >> m; + std::vector a(m + 1, 0), dp(n + 5, 0); + for (int i = 0; i < m; ++i) { + std::cin >> a[i + 1]; + } + a.push_back(n + 1); + dp[0] = 1; + dp[1] = 1; + dp[2] = 2; + for (int i = 3; i <= n; ++i) { + dp[i] = dp[i - 1] + dp[i - 2]; + } + for (int i = 1; i < m + 2; ++i) { + ans *= dp[a[i] - a[i - 1] - 1]; + } + std::cout << ans << "\n"; +} \ No newline at end of file diff --git a/dongha/250126/5464.cpp b/dongha/250126/5464.cpp new file mode 100644 index 0000000..dc7fce6 --- /dev/null +++ b/dongha/250126/5464.cpp @@ -0,0 +1,51 @@ +#include +using i64 = long long; + +int main() { + std::cin.tie(nullptr)->sync_with_stdio(false); + int n, m; + std::cin >> n >> m; + std::vector a(n), c(n), w(m), h(m); + for (int i = 0; i < n; ++i) { + std::cin >> c[i]; + } + for (int i = 0; i < m; ++i) { + std::cin >> w[i]; + } + int ans = 0; + std::queue q; + for (int i = 0; i < 2 * m; ++i) { + int o; + std::cin >> o; + if (o > 0) { + o--; + int l = -1; + for (int i = 0; i < n; ++i) { + if (a[i] == 0) { + l = i; + break; + } + } + if (l == -1 || !q.empty()) { + q.push(o); + } else { + a[l] = 1; + h[o] = l; + ans += c[l] * w[o]; + } + } else { + o = -o - 1; + int l = h[o]; + a[l] = 0; + if (!q.empty()) { + int b = q.front(); + q.pop(); + a[l] = 1; + h[b] = l; + ans += c[l] * w[b]; + } + } + } + + std::cout << ans << "\n"; +} \ No newline at end of file diff --git a/dongha/250126/7795.cpp b/dongha/250126/7795.cpp new file mode 100644 index 0000000..609a33c --- /dev/null +++ b/dongha/250126/7795.cpp @@ -0,0 +1,28 @@ +#include +using i64 = long long; + +void solve() { + int n, m; + std::cin >> n >> m; + std::vector a(n); + for (int i = 0; i < n; ++i) { + std::cin >> a[i]; + } + std::sort(a.begin(), a.end()); + int ans = 0; + for (int i = 0; i < m; ++i) { + int x; + std::cin >> x; + ans += a.end() - upper_bound(a.begin(), a.end(), x); + } + + std::cout << ans << "\n"; +} +int main() { + std::cin.tie(nullptr)->sync_with_stdio(false); + int t; + std::cin >> t; + while (t--) { + solve(); + } +} \ No newline at end of file From 2f599d74d1517bbf4056ffff63f311b264a56c8c Mon Sep 17 00:00:00 2001 From: movingsummer Date: Sun, 16 Feb 2025 17:35:41 +0900 Subject: [PATCH 2/2] 250216 study --- dongha/250226/1158.cpp | 24 ++++++++++++++++++++++++ dongha/250226/14397.cpp | 31 +++++++++++++++++++++++++++++++ dongha/250226/15988.cpp | 24 ++++++++++++++++++++++++ dongha/250226/17245.cpp | 38 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 117 insertions(+) create mode 100644 dongha/250226/1158.cpp create mode 100644 dongha/250226/14397.cpp create mode 100644 dongha/250226/15988.cpp create mode 100644 dongha/250226/17245.cpp diff --git a/dongha/250226/1158.cpp b/dongha/250226/1158.cpp new file mode 100644 index 0000000..7b7b70a --- /dev/null +++ b/dongha/250226/1158.cpp @@ -0,0 +1,24 @@ +#include +using i64 = long long; + +int main() { + std::cin.tie(nullptr)->sync_with_stdio(false); + int n, k; + std::cin >> n >> k; + k--; + std::deque dq; + for (int i = 1; i <= n; ++i) { + dq.push_back(i); + } + + std::cout << "<"; + while (!dq.empty()) { + for (int i = 0; i < k; ++i) { + dq.push_back(dq.front()); + dq.pop_front(); + } + + std::cout << dq.front() << ",>"[dq.size() == 1] << " "; + dq.pop_front(); + } +} \ No newline at end of file diff --git a/dongha/250226/14397.cpp b/dongha/250226/14397.cpp new file mode 100644 index 0000000..d7cd614 --- /dev/null +++ b/dongha/250226/14397.cpp @@ -0,0 +1,31 @@ +#include +using i64 = long long; + +int main() { + std::cin.tie(nullptr)->sync_with_stdio(false); + int n, m; + std::cin >> n >> m; + std::vector a(n, std::vector(m)); + for (int i = 0; i < n; ++i) { + for (int j = 0; j < m; ++j) { + std::cin >> a[i][j]; + } + } + + int ans = 0; + int dy[6] = {-1, -1, 0, 0, 1, 1}; + int dx[2][6] = {{0, -1, -1, 1, 0, -1}, {0, 1, -1, 1, 0, 1}}; + for (int i = 0; i < n; ++i) { + for (int j = 0; j < m; ++j) { + if (a[i][j] == '.') continue; + for (int dir = 0; dir < 6; ++dir) { + int ny = i + dy[dir]; + int nx = j + dx[i % 2][dir]; + if (ny < 0 || ny >= n || nx < 0 || nx >= m) continue; + ans += a[ny][nx] == '.'; + } + } + } + + std::cout << ans << "\n"; +} \ No newline at end of file diff --git a/dongha/250226/15988.cpp b/dongha/250226/15988.cpp new file mode 100644 index 0000000..133dbdd --- /dev/null +++ b/dongha/250226/15988.cpp @@ -0,0 +1,24 @@ +#include +using i64 = long long; + +constexpr int M = 1e9 + 9; +void solve(std::vector& dp) { + int n; + std::cin >> n; + std::cout << dp[n] << "\n"; +} +int main() { + std::cin.tie(nullptr)->sync_with_stdio(false); + int t; + std::cin >> t; + std::vector dp(1000001); + dp[1] = 1; + dp[2] = 2; + dp[3] = 4; + for (int i = 4; i <= 1000000; ++i) { + dp[i] = (dp[i - 3] + dp[i - 2] + dp[i - 1]) % M; + } + while (t--) { + solve(dp); + } +} \ No newline at end of file diff --git a/dongha/250226/17245.cpp b/dongha/250226/17245.cpp new file mode 100644 index 0000000..522a653 --- /dev/null +++ b/dongha/250226/17245.cpp @@ -0,0 +1,38 @@ +#include +using i64 = long long; + +int main() { + std::cin.tie(nullptr)->sync_with_stdio(false); + int n; + i64 tot = 0; + std::cin >> n; + std::vector a(n, std::vector(n)); + for (int i = 0; i < n; ++i) { + for (int j = 0; j < n; ++j) { + std::cin >> a[i][j]; + tot += a[i][j]; + } + } + + auto ok = [&](i64 x) { + i64 cnt = 0; + for (int i = 0; i < n; ++i) { + for (int j = 0; j < n; ++j) { + cnt += std::min(a[i][j], x); + } + } + + return 2 * cnt >= tot; + }; + + i64 lo, hi; + for (lo = -1, hi = 1e10; lo + 1 < hi;) { + i64 mid = (lo + hi) / 2; + if (ok(mid)) + hi = mid; + else + lo = mid; + } + + std::cout << hi << "\n"; +} \ No newline at end of file