結果
| 問題 |
No.8044 April Sum of Odd
|
| コンテスト | |
| ユーザー |
kenichi
|
| 提出日時 | 2023-03-23 17:59:48 |
| 言語 | Rust (1.83.0 + proconio) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 2,430 bytes |
| コンパイル時間 | 12,658 ms |
| コンパイル使用メモリ | 377,632 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-09-18 15:32:04 |
| 合計ジャッジ時間 | 13,829 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 3 WA * 7 |
ソースコード
use std::io::*;
//use std::num;
use std::str::FromStr;
//use std::time::Instant;
fn main() {
//let now = Instant::now();
let n: usize = read();
let m: usize = read();
let mut a = vec![0; n];
let mut ans: u64 = 0;
let mut flag_start: usize = 0;
let mut flag_end: usize;
let mut flag_move: bool = false;
for _i in 0..a.len(){
a[_i] = read();
}
for _i in 0..n{
if n == 1 && a[0] % 2 == 1{
println!("{}",a[0]);
}else if flag_move == false && a[_i] % 2 == 1{
flag_start = _i;
flag_move = true;
}else if flag_move == true && a[_i] % 2 == 1{
if _i >= n-1{
for _j in flag_start..n{
ans += a[_j];
}
println!("{}",ans);
ans = 0;
}
}else if flag_move == false && a[_i] % 2 == 0{
}else if flag_move == true && a[_i] % 2 == 0{
flag_end = _i;
if flag_end - flag_start >= m{
for _j in flag_start..flag_end{
ans += a[_j];
}
println!("{}",ans);
ans = 0;
flag_move = false;
}
}
}
//println!("[DEBUG_PRINT] {} ms", now.elapsed().as_millis());
}
pub fn min(x: usize, y: usize) -> usize {
let z: usize;
if x <= y {
z = x;
} else {
z = y;
}
return z;
}
pub fn read<T: FromStr>() -> T {
let stdin = stdin();
let stdin = stdin.lock();
let token: String = stdin
.bytes()
.map(|c| c.expect("failed to read char") as char)
.skip_while(|c| c.is_whitespace())
.take_while(|c| !c.is_whitespace())
.collect();
token.parse().ok().expect("failed to parse token")
}
pub fn read_array() -> Vec<char> {
let array: String = read();
let chars: Vec<char> = array.trim().chars().collect::<Vec<char>>();
chars
}
pub fn get_data() -> Vec<u64> {
let mut s: String = String::new();
std::io::stdin().read_line(&mut s).ok();
let vec: Vec<u64> = s
.trim()
.split_whitespace()
.map(|e| e.parse().ok().unwrap())
.collect();
vec
}
pub fn get_chars() -> Vec<char> {
let mut s: String = String::new();
std::io::stdin().read_line(&mut s).ok();
let vec: Vec<char> = s.trim().chars().collect::<Vec<char>>();
vec
}
kenichi