結果

問題 No.3477 Yet Another LIS Triangle
コンテスト
ユーザー ks2m
提出日時 2026-03-20 22:53:12
言語 Java
(openjdk 25.0.2)
コンパイル:
javac -encoding UTF8 _filename_
実行:
java -ea -Xmx700m -Xss256M -DONLINE_JUDGE=true _class_
結果
AC  
実行時間 225 ms / 2,000 ms
コード長 1,533 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 2,048 ms
コンパイル使用メモリ 84,232 KB
実行使用メモリ 59,616 KB
最終ジャッジ日時 2026-03-20 22:53:20
合計ジャッジ時間 8,115 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge2_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 22
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

public class Main {
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int t = Integer.parseInt(br.readLine());
		PrintWriter pw = new PrintWriter(System.out);
		for (int z = 0; z < t; z++) {
			String[] sa = br.readLine().split(" ");
			int n = Integer.parseInt(sa[0]);
			int k = Integer.parseInt(sa[1]);

			if (k == 1 || k == n) {
				pw.println("No");
			} else {
				pw.println("Yes");
				n--;
				int n3 = n * 3;
				List<Integer> list1 = new ArrayList<>();
				List<Integer> list2 = new ArrayList<>();
				List<Integer> list3 = new ArrayList<>();
				list1.add(n3);
				list2.add(n3 - 2);
				list3.add(n3 - 1);

				int r = n - k;
				for (int i = 0; i < r; i++) {
					list1.add(n - 1 - i);
					list2.add(n * 2 - 2 - i);
					list3.add(n * 3 - 3 - i);
				}
				for (int i = 1; i < k; i++) {
					list1.add(i);
					list2.add(n - 1 + i);
					list3.add(n * 2 - 2 + i);
				}
				list1.add(n3 - 2);
				list2.add(n3 - 1);
				list3.add(n3);

				pw.println(toString(list1));
				pw.println(toString(list2));
				pw.println(toString(list3));
			}
		}
		pw.flush();
		br.close();
	}

	static String toString(List<Integer> list) {
		StringBuilder sb = new StringBuilder();
		for (int e : list) {
			sb.append(e).append(' ');
		}
		sb.deleteCharAt(sb.length() - 1);
		return sb.toString();
	}
}
0