Submission #63534173


Source Code Expand

use proconio::input;
use std::io::{self, BufWriter, Write};

fn prefix_sums(xs: &[i64]) -> Vec<i64> {
    xs.iter()
        .scan(0, |acc, x| {
            *acc += x;
            Some(*acc)
        })
        .collect()
}

fn prefix_maxes(xs: &[i64]) -> Vec<i64> {
    xs.iter()
        .scan(0, |acc, x| {
            let y: i64 = *acc;
            *acc = y.max(*x);
            Some(*acc)
        })
        .collect()
}

fn solve(bs: &[i64], ws: &[i64]) -> i64 {
    let n = bs.len();
    let m = ws.len();

    let bss = prefix_sums(bs);
    let wss = prefix_sums(ws);
    let wsm = prefix_maxes(&wss);

    let mut result = 0;
    for i in 0..n {
        result = result.max(bss[i] + wsm[i.min(m - 1)]);
    }
    result
}

fn main() {
    let stdout = io::stdout();
    let handle = stdout.lock();
    let mut writer = BufWriter::new(handle);

    input! {
        n: usize,
        m: usize,
        mut bs: [i64; n],
        mut ws: [i64; m],
    }

    bs.sort();
    bs.reverse();
    ws.sort();
    ws.reverse();

    let result = solve(&bs, &ws);
    writeln!(writer, "{}", result).unwrap();
    writer.flush().unwrap();
}

Submission Info

Submission Time
Task C - Buy Balls
User ikr
Language Rust (rustc 1.70.0)
Score 300
Code Size 1193 Byte
Status AC
Exec Time 45 ms
Memory 14688 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 300 / 300
Status
AC × 3
AC × 49
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_test_00.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt, 01_test_24.txt, 01_test_25.txt, 01_test_26.txt, 01_test_27.txt, 01_test_28.txt, 01_test_29.txt, 01_test_30.txt, 01_test_31.txt, 01_test_32.txt, 01_test_33.txt, 01_test_34.txt, 01_test_35.txt, 01_test_36.txt, 01_test_37.txt, 01_test_38.txt, 01_test_39.txt, 01_test_40.txt, 01_test_41.txt, 01_test_42.txt, 01_test_43.txt, 01_test_44.txt, 01_test_45.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 0 ms 2064 KiB
00_sample_01.txt AC 0 ms 1904 KiB
00_sample_02.txt AC 0 ms 2092 KiB
01_test_00.txt AC 0 ms 1984 KiB
01_test_01.txt AC 0 ms 2036 KiB
01_test_02.txt AC 1 ms 1948 KiB
01_test_03.txt AC 22 ms 8256 KiB
01_test_04.txt AC 15 ms 5796 KiB
01_test_05.txt AC 13 ms 5248 KiB
01_test_06.txt AC 44 ms 14364 KiB
01_test_07.txt AC 44 ms 14412 KiB
01_test_08.txt AC 44 ms 14440 KiB
01_test_09.txt AC 44 ms 14456 KiB
01_test_10.txt AC 44 ms 14504 KiB
01_test_11.txt AC 43 ms 14452 KiB
01_test_12.txt AC 43 ms 14440 KiB
01_test_13.txt AC 43 ms 14280 KiB
01_test_14.txt AC 44 ms 14300 KiB
01_test_15.txt AC 38 ms 13072 KiB
01_test_16.txt AC 44 ms 14452 KiB
01_test_17.txt AC 36 ms 12740 KiB
01_test_18.txt AC 44 ms 14388 KiB
01_test_19.txt AC 39 ms 13468 KiB
01_test_20.txt AC 43 ms 14448 KiB
01_test_21.txt AC 37 ms 13100 KiB
01_test_22.txt AC 44 ms 14372 KiB
01_test_23.txt AC 35 ms 12288 KiB
01_test_24.txt AC 45 ms 14516 KiB
01_test_25.txt AC 35 ms 11868 KiB
01_test_26.txt AC 44 ms 14480 KiB
01_test_27.txt AC 39 ms 12536 KiB
01_test_28.txt AC 43 ms 14304 KiB
01_test_29.txt AC 36 ms 12340 KiB
01_test_30.txt AC 44 ms 14496 KiB
01_test_31.txt AC 30 ms 10816 KiB
01_test_32.txt AC 43 ms 14196 KiB
01_test_33.txt AC 34 ms 11848 KiB
01_test_34.txt AC 42 ms 14296 KiB
01_test_35.txt AC 35 ms 12024 KiB
01_test_36.txt AC 42 ms 14436 KiB
01_test_37.txt AC 27 ms 10276 KiB
01_test_38.txt AC 44 ms 14564 KiB
01_test_39.txt AC 32 ms 11204 KiB
01_test_40.txt AC 43 ms 14496 KiB
01_test_41.txt AC 31 ms 11284 KiB
01_test_42.txt AC 44 ms 14688 KiB
01_test_43.txt AC 0 ms 1944 KiB
01_test_44.txt AC 22 ms 9180 KiB
01_test_45.txt AC 22 ms 7576 KiB