結果

問題 No.3067 +10 Seconds Clock
ユーザー NakLon131
提出日時 2025-03-22 15:50:23
言語 Rust
(1.83.0 + proconio)
結果
WA  
実行時間 -
コード長 1,474 bytes
コンパイル時間 14,045 ms
コンパイル使用メモリ 379,024 KB
実行使用メモリ 8,448 KB
最終ジャッジ日時 2025-03-22 15:50:38
合計ジャッジ時間 14,459 ms
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 22 WA * 1
権限があれば一括ダウンロードができます

ソースコード

diff #

fn main() {
    input!{
		nn: usize, tt: usize,
		mut vec_t: [usize; nn-1],
		kk: usize,
		vec_k: [usize; kk],
	}
	vec_t.insert(0, 0);

	// 加算する位置
	let mut k_info = vec![0; nn];
	for &item in &vec_k {
		k_info[item] = 10;
	}

	let mut dq = VecDeque::new();

	let mut cur_t = tt;
	for i in 1..nn {
		// 引けない場合はキューを取り出す
		if cur_t <= vec_t[i] {
			while dq.len() > 0 {
				dq.pop_back();
				cur_t += 10;
				if cur_t > vec_t[i] { break; }
			}	
		}
		
		if cur_t <= vec_t[i] {
			println!("-1");
			return;
		}
		cur_t -= vec_t[i];

		if k_info[i] == 10 {
			dq.push_back(10);
		}

		// println!("{}", cur_t);
	}
	println!("{}", kk - dq.len());

}

// const MOD17: usize = 1000000007;
// const MOD93: usize = 998244353;
// const INF: usize = 1 << 60;
// let dx = vec![!0, 0, 1, 0]; // 上左下右
// let dy = vec![0, !0, 0, 1]; // 上左下右
// let d = vec!{(!0, 0), (0, !0), (1, 0), (0, 1)}; // 上左下右

#[allow(unused)]
use proconio::{input, marker::Chars, marker::Usize1};

#[allow(unused)]
use std::{
	mem::swap,
	cmp::min, cmp::max,
	cmp::Reverse,
	collections::HashSet, collections::BTreeSet,
	collections::HashMap, collections::BTreeMap,
	collections::BinaryHeap,
	collections::VecDeque,
	iter::FromIterator,
};
// 配列のスペース区切り出力
#[allow(unused)]
fn vec_print<T: std::fmt::Display>(vec: &Vec<T>) {
	let sz = vec.len();
	for i in 0..sz-1 {
		print!("{} ", vec[i]);
	}
	println!("{}", vec[sz-1]);
}
0