Submission #42508313


Source Code Expand

#![allow(unused_imports)]
use itertools::Itertools;
use petgraph::unionfind::UnionFind;
use proconio::{fastout, input, marker::Chars, marker::Usize1, source::line::LineSource};
use std::cmp::{max, min};
use std::collections::{BTreeSet, HashSet, VecDeque};
use std::io::{stdin, stdout, BufReader};
#[fastout]
fn main() {
    input! {
        n:usize,
        x:usize,y:isize,
    }
    let mut i: usize = 1;
    let mut dp: Vec<Vec<isize>> = vec![vec![-10000000000; n]; 2];
    if x == 0 {
        dp[0][0] = max(0, y);
        dp[1][0] = 0;
    } else {
        dp[0][0] = 0;
        dp[1][0] = max(0, y);
    }
    input! {
        ab:[(usize,isize);n-1]
    }
    for (a, b) in ab {
        if a == 0 {
            dp[0][i] = max(dp[0][i - 1] + b, max(dp[1][i - 1] + b, dp[0][i - 1]));
            dp[1][i] = dp[1][i - 1];
        } else if a == 1 {
            dp[1][i] = max(dp[1][i - 1], dp[0][i - 1] + b);
            dp[0][i] = dp[0][i - 1];
        }
        i += 1;
    }
    println!("{}", max(dp[1][n - 1], dp[0][n - 1]));
}
/*
pub fn ziparam(a:usize,b:usize) -> usize{ // |a:usize - b:usize| -> usize
    return max(a,b) - min(a,b);
}

pub fn power(n:usize,x:usize) -> usize{ // n ^ x -> O(logx)
    let k: usize = 1;
    let mut b: usize = n;
    let mut a: usize = 1;
    while x != 0{
        if k << i & x != 0 {
            a *= b;
            b *= b;
            x ^= (k << i);
        } else {
            b *= b;
        }
    }
    a
}

pub fn powm(n: usize, c: usize, m: usize) -> usize { // n ^ c mod m -> O(logc)
    let k: usize = 1;
    let mut x = c;
    let mut b: usize = n;
    let mut a: usize = 1;
    let mut i = 0;
    while x != 0 {
        if k << i & x != 0 {
            a = (a * b) % m;
            b = (b * b) % m;
            x ^= (k << i);
        } else {
            b = (b * b) % m;
        }
        i += 1;
    }
    a
}
*/

Submission Info

Submission Time
Task D - Poisonous Full-Course
User sou31415
Language Rust (1.42.0)
Score 400
Code Size 1948 Byte
Status AC
Exec Time 41 ms
Memory 15476 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 3
AC × 31
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt
Case Name Status Exec Time Memory
sample_01.txt AC 1 ms 2052 KiB
sample_02.txt AC 2 ms 2096 KiB
sample_03.txt AC 2 ms 2152 KiB
test_01.txt AC 2 ms 2056 KiB
test_02.txt AC 2 ms 2160 KiB
test_03.txt AC 2 ms 2056 KiB
test_04.txt AC 2 ms 2200 KiB
test_05.txt AC 4 ms 2992 KiB
test_06.txt AC 32 ms 10824 KiB
test_07.txt AC 15 ms 5496 KiB
test_08.txt AC 7 ms 2780 KiB
test_09.txt AC 16 ms 6388 KiB
test_10.txt AC 32 ms 13780 KiB
test_11.txt AC 29 ms 9912 KiB
test_12.txt AC 22 ms 10536 KiB
test_13.txt AC 31 ms 12684 KiB
test_14.txt AC 13 ms 4884 KiB
test_15.txt AC 33 ms 12120 KiB
test_16.txt AC 21 ms 9648 KiB
test_17.txt AC 28 ms 12728 KiB
test_18.txt AC 34 ms 13892 KiB
test_19.txt AC 41 ms 14888 KiB
test_20.txt AC 29 ms 12588 KiB
test_21.txt AC 29 ms 12700 KiB
test_22.txt AC 35 ms 13820 KiB
test_23.txt AC 37 ms 14992 KiB
test_24.txt AC 30 ms 12648 KiB
test_25.txt AC 35 ms 15476 KiB
test_26.txt AC 37 ms 15168 KiB
test_27.txt AC 40 ms 15176 KiB
test_28.txt AC 40 ms 15332 KiB