結果

問題 No.2560 A_1 < A_2 < ... < A_N
ユーザー kutsutama
提出日時 2024-01-02 01:07:07
言語 Rust
(1.83.0 + proconio)
結果
AC  
実行時間 119 ms / 2,000 ms
コード長 955 bytes
コンパイル時間 12,862 ms
コンパイル使用メモリ 400,300 KB
実行使用メモリ 6,944 KB
最終ジャッジ日時 2024-09-27 17:37:49
合計ジャッジ時間 15,300 ms
ジャッジサーバーID
(参考情報)
judge4 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 15
権限があれば一括ダウンロードができます

ソースコード

diff #

use std::io;

fn main() {
    let t = input_usize();

    for _ in 0..t {
        let raw = input_string();
        let sp: Vec<&str> = raw.split(' ').collect();
        let n: usize = parse(&sp[0]);
        let x: usize = parse(&sp[1]);

        let mut arr: Vec<usize> = (1..=n).collect();
        let sum: usize = arr.iter().sum();
        if sum > x {
            println!("-1");
            continue;
        }
        arr[n - 1] = n + x - sum;
        print_array(&arr);
    }
}

fn input_string() -> String {
    let mut input = String::new();
    io::stdin().read_line(&mut input).unwrap();
    input
}

fn input_usize() -> usize {
    let string_input = input_string();
    parse(&string_input)
}

fn parse(string: &str) -> usize {
    string.trim().parse().unwrap()
}

fn print_array<T: std::fmt::Display>(array: &Vec<T>) {
    let mut res = String::new();
    for a in array {
        res += &format!("{} ", a);
    }
    println!("{}", res);
}
0