提出 #31286258


ソースコード 拡げる

use proconio::input;

fn main() {
    input! {
        mut n: i64,
    };

    let mut ans = vec![];
    let mut sum = 0_i64;
    for x in 0.. {
        if n - sum == 0 {
            break;
        }
        let r = (n - sum) % 2_i64.pow(x + 1);
        if r != 0 {
            ans.push(1);
            sum += (-2_i64).pow(x);
        } else {
            ans.push(0);
        }
    }
    if ans.is_empty() {
        ans.push(0);
    }
    ans.reverse();
    println!(
        "{}",
        ans.into_iter()
            .map(|i| (b'0' + i as u8) as char)
            .collect::<String>()
    );
}

提出情報

提出日時
問題 C - Base -2 Number
ユーザ bouzuya
言語 Rust (1.42.0)
得点 300
コード長 596 Byte
結果 AC
実行時間 7 ms
メモリ 2160 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 300 / 300
結果
AC × 3
AC × 18
セット名 テストケース
Sample sample_01, sample_02, sample_03
All 0_small0, 0_small1, 0_small2, 0_small3, 0_small4, 1_large0, 1_large1, 1_large2, 1_large3, 1_large4, 1_large5, 1_large6, 1_large7, 2_max0, 2_max1, sample_01, sample_02, sample_03
ケース名 結果 実行時間 メモリ
0_small0 AC 7 ms 2008 KiB
0_small1 AC 1 ms 2024 KiB
0_small2 AC 2 ms 2052 KiB
0_small3 AC 1 ms 2040 KiB
0_small4 AC 2 ms 2060 KiB
1_large0 AC 1 ms 2152 KiB
1_large1 AC 1 ms 1980 KiB
1_large2 AC 2 ms 2036 KiB
1_large3 AC 2 ms 2112 KiB
1_large4 AC 1 ms 2160 KiB
1_large5 AC 2 ms 2092 KiB
1_large6 AC 2 ms 2076 KiB
1_large7 AC 1 ms 2108 KiB
2_max0 AC 2 ms 2120 KiB
2_max1 AC 1 ms 2012 KiB
sample_01 AC 1 ms 2108 KiB
sample_02 AC 1 ms 2144 KiB
sample_03 AC 3 ms 2128 KiB