結果
問題 | No.2854 -1 Subsequence |
ユーザー | QiToY |
提出日時 | 2024-08-25 13:48:09 |
言語 | Rust (1.83.0 + proconio) |
結果 |
AC
|
実行時間 | 35 ms / 2,000 ms |
コード長 | 1,247 bytes |
コンパイル時間 | 12,477 ms |
コンパイル使用メモリ | 403,476 KB |
実行使用メモリ | 19,740 KB |
最終ジャッジ日時 | 2024-08-25 13:48:30 |
合計ジャッジ時間 | 13,640 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 40 |
ソースコード
#![allow(unused_imports)]fn main() {input! {n: usize,a: [i64; n],}let mut dp = mvec![None; (n+1, 2)];for i in 0..n {// j == 0chmax!(dp[i + 1][1], Some(-a[i]));for j in 0..2 {if let Some(v) = dp[i][j] {chmax!(dp[i + 1][j], Some(v));chmax!(dp[i + 1][j ^ 1],Some(v + a[i] * if j == 0 { -1 } else { 1 }));}}}println!("{}", dp[n][0].max(dp[n][1]).unwrap());}use proconio::{input, marker::*};use std::{cmp::Reverse, collections::*};#[macro_export]macro_rules! chmax {($a:expr, $b:expr) => {{let tmp = $b;if $a < tmp {$a = tmp;true} else {false}}};}#[macro_export]macro_rules! chmin {($a:expr, $b:expr) => {{let tmp = $b;if $a > tmp {$a = tmp;true} else {false}}};}#[macro_export]/// mvec![]macro_rules! mvec {($val:expr; ()) => {$val};($val:expr; ($size:expr $(,$rest:expr)*)) => {vec![mvec![$val; ($($rest),*)]; $size]};}