1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
fn main() {
    let mut lines = std::io::stdin().lines().map(|x| x.unwrap());
    let t = lines.next().unwrap().parse::<usize>().unwrap();

    for _ in 0..t {
        let (mut n, k) = {
            let nk = lines
                .next()
                .unwrap()
                .split_whitespace()
                .map(|x| x.parse().unwrap())
                .collect::<Vec<usize>>();
            (nk[0], nk[1])
        };

        match k {
            1 => short(n, "AP"),
            2 => short(n, "AAPP"),
            3 => short(n, "AAAPAPPP"),
            _ => {
                for _ in 2..k {
                    print!("A");
                    n -= 1;
                }
                while n >= 6 {
                    print!("AAPAPP");
                    n -= 6;
                }
                println!("{}", &"AAPAPP"[0..n]);
            }
        }
    }
}

fn short(n: usize, s: &str) {
    if n > s.len() {
        println!("NIE");
    } else {
        println!("{}", &s[0..n]);
    }
}