blog.bouzuya.net

2023-05-19 具だくさんの味噌汁 / 違国日記 / PAST #2 G を解いた

母はみそ汁を「具だくさん」と言うが、それよりも汁が少ない。

https://iris.to/note10gyrjdpdy22a5r5agy3ns05qm4yr5gas5hzxghyln7wnn458a7ps6vdyyy

『違国日記』を毎日 1 話ずつ読んでいる。漫画は時間あたりのコストが高いので毎日すこしずつ読むと得な感じがする。一気に読みたくなるけど我慢する。


use std::collections::VecDeque;

use proconio::input;

fn main() {
    input! {
        q: usize,
    }

    let mut s = VecDeque::new();
    for _ in 0..q {
        input! {
            t: usize,
        }
        match t {
            1 => {
                input! {
                    c: char,
                    x: usize,
                }
                s.push_back((c, x));
            }
            2 => {
                input! {
                    d: usize,
                }

                let mut sum_x = 0_usize;
                let mut count = vec![0_usize; 26];
                while let Some((c, x)) = s.pop_front() {
                    sum_x += x;
                    if sum_x < d {
                        count[(c as u8 - b'a') as usize] += x;
                    } else {
                        let y = sum_x - d;
                        count[(c as u8 - b'a') as usize] += x - y;
                        s.push_front((c, y));
                        break;
                    }
                }
                let ans = count.iter().fold(0_usize, |acc, x| acc + x * x);
                println!("{}", ans);
            }
            _ => unreachable!(),
        }
    }
}

今日のコミット。