提出 #46418668
ソースコード 拡げる
use proconio::input;
fn main() {
input! {
n: usize,
a: [i64; n],
};
// +-+-...
let mut ans1 = 0_i64;
let mut sum = 0_i64;
for (i, a_i) in a.iter().copied().enumerate() {
sum += a_i;
if i % 2 == 0 {
if sum <= 0 {
let count = (1 - sum).abs();
ans1 += count;
sum += count;
}
} else if sum >= 0 {
let count = (-1 - sum).abs();
ans1 += count;
sum += -count;
}
}
// -+-+... で最小にする
let mut ans2 = 0_i64;
let mut sum = 0_i64;
for (i, a_i) in a.iter().copied().enumerate() {
sum += a_i;
if i % 2 == 0 {
if sum >= 0 {
let count = (-1 - sum).abs();
ans2 += count;
sum += -count;
}
} else if sum <= 0 {
let count = (1 - sum).abs();
ans2 += count;
sum += count;
}
}
println!("{}", ans1.min(ans2));
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | C - Sequence |
| ユーザ | bouzuya |
| 言語 | Rust (rustc 1.70.0) |
| 得点 | 300 |
| コード長 | 1051 Byte |
| 結果 | AC |
| 実行時間 | 6 ms |
| メモリ | 3608 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 300 / 300 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | 00-00.txt, 00-01.txt, 00-02.txt |
| All | 00-00.txt, 00-01.txt, 00-02.txt, 01-00.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 00-00.txt | AC | 1 ms | 1932 KiB |
| 00-01.txt | AC | 1 ms | 1972 KiB |
| 00-02.txt | AC | 1 ms | 2096 KiB |
| 01-00.txt | AC | 5 ms | 3468 KiB |
| 01-01.txt | AC | 5 ms | 3608 KiB |
| 01-02.txt | AC | 5 ms | 3520 KiB |
| 01-03.txt | AC | 5 ms | 3432 KiB |
| 01-04.txt | AC | 5 ms | 3476 KiB |
| 01-05.txt | AC | 5 ms | 3344 KiB |
| 01-06.txt | AC | 5 ms | 3520 KiB |
| 01-07.txt | AC | 5 ms | 3348 KiB |
| 01-08.txt | AC | 5 ms | 3508 KiB |
| 01-09.txt | AC | 5 ms | 3388 KiB |
| 01-10.txt | AC | 4 ms | 3312 KiB |
| 01-11.txt | AC | 5 ms | 3572 KiB |
| 01-12.txt | AC | 6 ms | 3604 KiB |
| 01-13.txt | AC | 5 ms | 3488 KiB |
| 01-14.txt | AC | 5 ms | 3448 KiB |