結果
問題 |
No.568 じゃんじゃん 落とす 委員会
|
ユーザー |
|
提出日時 | 2025-05-16 22:04:19 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 56 ms / 1,000 ms |
コード長 | 841 bytes |
コンパイル時間 | 3,120 ms |
コンパイル使用メモリ | 195,640 KB |
実行使用メモリ | 14,792 KB |
最終ジャッジ日時 | 2025-05-16 22:04:25 |
合計ジャッジ時間 | 4,411 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 26 |
ソースコード
#include <bits/stdc++.h> using namespace std; #define int long long const int N = 100010; int n, m, a[N], x[N], b[N], ha[10]; vector<int> va[N], vb[N]; signed main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> m; for (int i = 1; i <= n; i ++ ) cin >> x[i] >> a[i] >> b[i]; for (int i = 1; i <= n; i ++ ) { vb[b[i]].emplace_back(i); va[a[i]].emplace_back(i); x[i] ++ ; } for (int i = 1; i <= n; i ++ ) ha[x[i]] ++ ; int sb = 100001, res = 1e18; for (int sa = 0; sa <= 100001; sa ++ ) { while (sb) { if (ha[2] + ha[3] + ha[4] + ha[5] >= m) break; sb -- ; for (auto i : vb[sb]) ha[x[i]] -- , ha[ ++ x[i]] ++ ; } if (ha[2] + ha[3] + ha[4] + ha[5] < m) break; res = min(res, ha[3] + ha[4] + ha[5]); for (auto i : va[sa]) ha[x[i]] -- , ha[ -- x[i]] ++ ; } cout << res; return 0; }