結果

問題 No.3041 非対称じゃんけん
ユーザー NakLon131
提出日時 2025-02-28 23:24:54
言語 Rust
(1.83.0 + proconio)
結果
WA  
実行時間 -
コード長 1,212 bytes
コンパイル時間 12,452 ms
コンパイル使用メモリ 401,404 KB
実行使用メモリ 8,236 KB
最終ジャッジ日時 2025-02-28 23:25:15
合計ジャッジ時間 19,865 ms
ジャッジサーバーID
(参考情報)
judge3 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 3 WA * 17 TLE * 1 -- * 9
権限があれば一括ダウンロードができます

ソースコード

diff #

fn main() {
    input!{
		n: usize, f: usize,
		a: [usize; n],
		b: [usize; n],
		c: [usize; n],
	}

	let max_f = 3*n*f;

	// dp[i番目まで見た][指の合計本数j] = true/false
	let mut cur_dp = vec![false; max_f+1];
	cur_dp[0] = true;

	// もらうDP
	for i in 1..=n {
		let mut ans = 0;
		for next in (0..=max_f).rev() {
			if next >= a[i-1] {
				cur_dp[next] |= cur_dp[next - a[i-1]];
			}
			if next >= b[i-1] {
				cur_dp[next] |= cur_dp[next - b[i-1]];
			}
			if next >= c[i-1] {
				cur_dp[next] |= cur_dp[next - c[i-1]];
			}
		}
		for j in 0..=max_f {
			if cur_dp[j] { ans += 1;}
		}
		println!("{}", ans);
	}

}

// 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,
};
0