2022-10-01から1ヶ月間の記事一覧

AtCoder Beginner Contest 272 C

https://atcoder.jp/contests/abc272/tasks/abc272_cAを偶数と奇数に分ければよいですが、filterを使って簡単に書くとどうしてもVecになってしまいます。 let mut evens = Vec::<i32>::new(); let mut odds = Vec::<i32>::new(); for a in A.iter() { if a % 2 == 0 { </i32></i32>…

AtCoder Beginner Contest 273 C

https://atcoder.jp/contests/abc273/tasks/abc273_cgroupbyが使えれば簡単ですが、itertools::Itertoolsにgroup_byというのがありますね。 あと、fにVecをmutableで渡すとめんどうなので、渡す前にsortします。 // (K+1)-th Largest Number #![allow(non_sn…

AtCoder Beginner Contest 274 C

https://atcoder.jp/contests/abc274/tasks/abc274_cただのDPですね。 // Ameba #![allow(non_snake_case)] fn read<T: std::str::FromStr>() -> T { let mut line = String::new(); std::io::stdin().read_line(&mut line).ok(); line.trim().parse().ok().unwrap() } fn read_vec<T: std::str::FromStr></t:></t:>…

AtCoder Beginner Contest 255 C

https://atcoder.jp/contests/abc255/tasks/abc255_c等差数列を構造体にすれば楽になりますが、負数が絡むと不安になりますね。 // ±1 Operation 1 #![allow(non_snake_case)] use std::cmp::min; fn read<T: std::str::FromStr>() -> T { let mut line = String::new(); std::io::</t:>…

AtCoder Beginner Contest 256 C

https://atcoder.jp/contests/abc256/tasks/abc256_cこうすると怒られます。 if hs.iter().sum() != ws.iter().sum() { 40 | if hs.iter().sum() != ws.iter().sum() { | ^^^ cannot infer type for type parameter `S` declared on the associated function…

AtCoder Beginner Contest 257 C

https://atcoder.jp/contests/abc257/tasks/abc257_c各体重に対して子どもが何人、大人が何人いるかをMapに入れますが、ソートして使いたいのでBTreeMapを使います。 // Robot Takahashi #![allow(non_snake_case)] use std::collections::BTreeMap; fn read<T: std::str::FromStr></t:>…

AtCoder Beginner Contest 258 C

https://atcoder.jp/contests/abc258/tasks/abc258_c1の処理をする代わりに先頭の位置を変えます。 // Rotation #![allow(non_snake_case)] fn read<T: std::str::FromStr>() -> T { let mut line = String::new(); std::io::stdin().read_line(&mut line).ok(); line.trim().parse</t:>…

AtCoder Beginner Contest 259 C

https://atcoder.jp/contests/abc260/tasks/abc259_cgroupbyを使えば簡単です。PartialEqとCopyが実装されていればOKのようです。 // XX to XXX #![allow(non_snake_case)] fn read<T: std::str::FromStr>() -> T { let mut line = String::new(); std::io::stdin().read_line(&mut</t:>…

AtCoder Beginner Contest 260 C

https://atcoder.jp/contests/abc260/tasks/abc260_c結局、HashMapはentryを使わないとうまくいかないですね。 // Changing Jewels #![allow(non_snake_case)] fn read<T: std::str::FromStr>() -> T { let mut line = String::new(); std::io::stdin().read_line(&mut line).ok();</t:>…

AtCoder Beginner Contest 261 C

https://atcoder.jp/contests/abc261/tasks/abc261_c結局、HashMapはentryを使わないとうまくいかないですね。 // NewFolder(1) #![allow(non_snake_case)] use std::collections::HashMap; fn read<T: std::str::FromStr>() -> T { let mut line = String::new(); std::io::stdin(</t:>…

AtCoder Beginner Contest 262 C

https://atcoder.jp/contests/abc262/tasks/abc262_cインデックスと同じものと往復すると同じになるものを数えます。 // Min Max Pair #![allow(non_snake_case)] fn read<T: std::str::FromStr>() -> T { let mut line = String::new(); std::io::stdin().read_line(&mut line).ok</t:>…