結果
問題 | No.3049 Contest Coordinator |
ユーザー |
|
提出日時 | 2025-01-23 23:45:37 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 331 ms / 2,000 ms |
コード長 | 800 bytes |
コンパイル時間 | 1,409 ms |
コンパイル使用メモリ | 81,808 KB |
実行使用メモリ | 8,872 KB |
最終ジャッジ日時 | 2025-01-23 23:45:55 |
合計ジャッジ時間 | 13,887 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 58 |
ソースコード
#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int N, T, X, Y; cin >> N >> T >> X >> Y; vector<int> D(N); for(int i = 0; i < N; i++) { cin >> D[i]; } sort(D.begin(), D.end()); D.emplace_back(D.back() + T + 5); vector<int> section_counts; int cnt = 0; for(int i = 0; i < N; i++) { cnt++; if(D[i + 1] - D[i] > T) { section_counts.emplace_back(cnt); cnt = 0; } } sort(section_counts.begin(), section_counts.end(), greater<int>()); section_counts.emplace_back(0); int si = 1; int need = section_counts.front(); long long ans = 0; for(int k = 1; k <= N; k++) { if(k > need) { ans += min(X, Y); need += section_counts[si++]; } cout << ans << " \n"[k == N]; } return 0; }