/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 284.0 KiB
#2 Accepted 17ms 1.52 MiB
#3 Accepted 27ms 2.484 MiB
#4 Accepted 29ms 2.289 MiB

Code

// Author: @Drydock
use std::io::{self, Read};

fn main() {
    solve();
}

fn solve() {
    let mut s = String::new();
    io::stdin().read_to_string(&mut s).unwrap();
    let mut it = I::new(&s);
    let t: usize = it.n();
    let mut o = String::new();
    for _ in 0..t {
        let k: u128 = it.n();
        let mut l: u128 = 1;
        let mut r: u128 = 2_000_000_000;
        while l < r {
            let m = (l + r) >> 1;
            let v = m * (m + 3) / 2;
            if v >= k {
                r = m;
            } else {
                l = m + 1;
            }
        }
        let n = l;
        let p = (n - 1) * (n + 2) / 2;
        if k - p <= n {
            o.push('a');
        } else {
            o.push('b');
        }
        o.push('\n');
    }
    print!("{}", o);
}

struct I<'a> {
    w: std::str::SplitWhitespace<'a>,
}

impl<'a> I<'a> {
    fn new(s: &'a str) -> Self {
        Self { w: s.split_whitespace() }
    }
    fn n<T: std::str::FromStr>(&mut self) -> T {
        self.w.next().unwrap().parse().ok().unwrap()
    }
}

Information

Submit By
Type
Submission
Problem
P1223 C. Infinity Sequence
Contest
Happy New Year 2026
Language
Rust 2021 (Rust 1.75.0)
Submit At
2026-01-06 15:07:14
Judged At
2026-01-06 15:07:14
Judged By
Score
100
Total Time
29ms
Peak Memory
2.484 MiB