From dd255442874c26e351fdd8ca0f333d02115294cd Mon Sep 17 00:00:00 2001 From: oncsr Date: Fri, 24 Oct 2025 23:36:48 +0900 Subject: [PATCH] =?UTF-8?q?[20251024]=20BOJ=20/=20P4=20/=20=ED=99=8D?= =?UTF-8?q?=EC=A4=80=EC=9D=B4=EC=9D=98=20=EA=B5=90=EC=A7=91=ED=95=A9=20/?= =?UTF-8?q?=20=EA=B6=8C=ED=98=81=EC=A4=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0 \352\265\220\354\247\221\355\225\251.md" | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 "khj20006/202510/24 BOJ P4 \355\231\215\354\244\200\354\235\264\354\235\230 \352\265\220\354\247\221\355\225\251.md" diff --git "a/khj20006/202510/24 BOJ P4 \355\231\215\354\244\200\354\235\264\354\235\230 \352\265\220\354\247\221\355\225\251.md" "b/khj20006/202510/24 BOJ P4 \355\231\215\354\244\200\354\235\264\354\235\230 \352\265\220\354\247\221\355\225\251.md" new file mode 100644 index 00000000..c4804650 --- /dev/null +++ "b/khj20006/202510/24 BOJ P4 \355\231\215\354\244\200\354\235\264\354\235\230 \352\265\220\354\247\221\355\225\251.md" @@ -0,0 +1,45 @@ +```cpp +#include +using namespace std; +using ll = long long; + +ll N, K; +const ll MOD = 1e9 + 7; +vector> events; +ll c[200001]{}; + +ll power(ll a, ll b) { + if (b == 0) return 1; + if (b == 1) return a % MOD; + ll h = power(a, b >> 1); + h = (h * h) % MOD; + return (b & 1) ? h * a % MOD : h; +} + +int main() { + cin.tie(0)->sync_with_stdio(0); + + cin >> N >> K; + + c[K] = 1; + for (int x = 1; K + x <= N; x++) c[K + x] = c[K + x - 1] * (K + x) % MOD * power(x, MOD - 2) % MOD; + + for (int i = 0, l, r; i < N; i++) { + cin >> l >> r; + events.emplace_back(l, 1); + events.emplace_back(r + 1, -1); + } + + sort(events.begin(), events.end()); + + ll ans = 0, prev = MOD, cnt = 0; + for (int i = 0; i < N * 2;) { + ll prevCnt = cnt, cur = events[i].first; + while (i < N * 2 && events[i].first == cur) cnt += events[i++].second; + if (prev != MOD) ans = (ans + (cur - prev) * c[prevCnt]) % MOD; + prev = cur; + } + cout << ans; + +} +```