結果

問題 No.3266 岩井星人は見ずにはいられない
ユーザー yiwiy9
提出日時 2025-09-11 03:00:31
言語 Rust
(1.83.0 + proconio)
結果
AC  
実行時間 4 ms / 2,000 ms
コード長 1,369 bytes
コンパイル時間 28,891 ms
コンパイル使用メモリ 389,988 KB
実行使用メモリ 7,720 KB
最終ジャッジ日時 2025-09-11 03:01:02
合計ジャッジ時間 29,376 ms
ジャッジサーバーID
(参考情報)
judge4 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 31
権限があれば一括ダウンロードができます

ソースコード

diff #

use proconio::{input, marker::Chars};

fn main() {
    input! {
        n: usize,
        mut a: usize,
        s: Chars,
    }

    let mut cur = 1200_i64;
    let mut one_cnt = 0;
    for (i, &c) in s.iter().enumerate() {
        if c == '1' {
            one_cnt += 1;
            if cur < 1200 {
                cur += 1;
                a -= 1;
            }
        } else {
            cur -= 1;
        }

        if a == 0 {
            println!("{}", i + 1);
            return;
        }
    }

    if n - one_cnt >= one_cnt {
        let loop_cnt = (a - 1) / one_cnt;
        a -= loop_cnt * one_cnt;

        for (i, &c) in s.iter().enumerate() {
            if c == '1' {
                a -= 1;
            }
            if a == 0 {
                println!("{}", n * (loop_cnt + 1) + i + 1);
                return;
            }
        }
    } else {
        let loop_cnt = (a - 1) / (n - one_cnt);
        a -= loop_cnt * (n - one_cnt);

        for (i, &c) in s.iter().enumerate() {
            if c == '1' {
                one_cnt += 1;
                if cur < 1200 {
                    cur += 1;
                    a -= 1;
                }
            } else {
                cur -= 1;
            }

            if a == 0 {
                println!("{}", n * (loop_cnt + 1) + i + 1);
                return;
            }
        }
    }
}
0