Submission #31102065


Source Code Expand

use std::collections::BTreeSet;

use proconio::input;

fn f(n: usize) -> usize {
    if n % 2 == 0 {
        n / 2
    } else {
        3 * n + 1
    }
}

fn main() {
    input! {
        s: usize,
    };
    let mut n = s;
    let mut set = BTreeSet::new();
    loop {
        if !set.insert(n) {
            let ans = set.len() + 1;
            println!("{}", ans);
            break;
        }
        n = f(n);
    }
}

Submission Info

Submission Time
Task B - Collatz Problem
User bouzuya
Language Rust (1.42.0)
Score 200
Code Size 423 Byte
Status AC
Exec Time 7 ms
Memory 2164 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 200 / 200
Status
AC × 3
AC × 12
Set Name Test Cases
Sample s1.txt, s2.txt, s3.txt
All 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, s1.txt, s2.txt, s3.txt
Case Name Status Exec Time Memory
01.txt AC 7 ms 1956 KiB
02.txt AC 1 ms 2080 KiB
03.txt AC 1 ms 1956 KiB
04.txt AC 3 ms 2052 KiB
05.txt AC 1 ms 2052 KiB
06.txt AC 1 ms 2032 KiB
07.txt AC 2 ms 2080 KiB
08.txt AC 2 ms 2092 KiB
09.txt AC 1 ms 2164 KiB
s1.txt AC 1 ms 2076 KiB
s2.txt AC 3 ms 2160 KiB
s3.txt AC 2 ms 1992 KiB