Problem:
B : 平均値の嘘 / Lie with Mean Value

問題文

R 大学情報理工学部 1 回生の学生 n 人が， プログラミング演習 1 という講義の期末試験を受験する． 試験は m 点満点である．つまり，1 人の学生の取りうる点数は 0 以上 m 以下の整数である．

担当の先生は意地が悪いので，平均値と中央値の差が最大になるような点数分布が気になっている．そのような点数の取り方を 1 つ出力せよ．

注 : 平均値とは点数の和を n で割ったものであり，中央値とは点数を昇順に並べたとき，n が奇数なら前から (n+1)/2 番目 (1 − indexed) の点数， 偶数なら前から n/2 番目と n/2+1 番目の点数を足して 2 で割った点数である．

入力

n \ m

制約

整数である

1 ≤ n ≤ 100

1 ≤ m ≤ 100

出力

答えの n 個の点数の列をスペース区切りで 1 行に出力し， 最後に改行を出力せよ．複数通りある場合はどれを出力しても良い．

サンプル

サンプル入力1

3 100

サンプル出力1

0 0 100

100 \ 100 \ 0 等も正答である．

サンプル入力2

1 100

サンプル出力2

50

Solution in JAVA (judge verdict: Accepted)

import java.util.Scanner;

/**
 * B : ??????????????? / Lie with Mean Value
 */
public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String line;

		//?????????: 0 - m

		int n = sc.nextInt();
		int m = sc.nextInt();

		int[] ns = new int[n];

		if (n > 2) {
			for (int i = n / 2 + 1; i < n; i++) {
				ns[i] = m;
			}
		}
		
		System.out.print(ns[0]);
		for (int i = 1; i < n; i++) {
			System.out.print(" " + ns[i]);
		}
		System.out.println();
	}
}