結果
問題 | No.1708 Quality of Contest |
ユーザー |
|
提出日時 | 2024-08-13 10:51:45 |
言語 | Rust (1.83.0 + proconio) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,146 bytes |
コンパイル時間 | 15,128 ms |
コンパイル使用メモリ | 378,460 KB |
実行使用メモリ | 19,056 KB |
最終ジャッジ日時 | 2024-08-13 10:52:05 |
合計ジャッジ時間 | 17,748 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 22 WA * 1 |
ソースコード
use proconio::{input, marker::Usize1};fn main() {input! {n:usize,m:usize,x:usize,mut ab:[(usize,Usize1);n],k:usize,c:[usize;k],}ab.sort_by(|x, y| y.0.cmp(&x.0));let mut seq = vec![];let mut i = 0;let mut j = 0;let mut used = vec![false; m];let mut fin = vec![false; n];let mut scores = vec![0];while i < n {if j < n && ab[i].0 < ab[j].0 + x {seq.push(j);fin[j] = true;used[ab[j].1] = true;let last_score = *scores.last().unwrap();scores.push(last_score + ab[j].0 + x);if i == j {i += 1;}while j < n && used[ab[j].1] {j += 1;}} else {seq.push(i);fin[i] = true;let last_score = *scores.last().unwrap();scores.push(last_score + ab[i].0);while i < n && fin[i] {i += 1;}}}let ans = c.iter().map(|&ci| scores[ci]).sum::<usize>();println!("{}", ans);}