結果

問題 No.689 E869120 and Constructing Array 3
ユーザー YamaKasaYamaKasa
提出日時 2018-05-19 02:07:49
言語 Java21
(openjdk 21)
結果
AC  
実行時間 145 ms / 1,000 ms
コード長 1,575 bytes
コンパイル時間 2,389 ms
コンパイル使用メモリ 77,324 KB
実行使用メモリ 41,696 KB
最終ジャッジ日時 2024-06-28 14:17:38
合計ジャッジ時間 5,656 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 128 ms
41,492 KB
testcase_01 AC 137 ms
41,420 KB
testcase_02 AC 137 ms
41,416 KB
testcase_03 AC 140 ms
41,132 KB
testcase_04 AC 129 ms
40,416 KB
testcase_05 AC 141 ms
41,432 KB
testcase_06 AC 141 ms
41,696 KB
testcase_07 AC 144 ms
41,588 KB
testcase_08 AC 142 ms
41,368 KB
testcase_09 AC 141 ms
41,548 KB
testcase_10 AC 143 ms
41,620 KB
testcase_11 AC 145 ms
41,412 KB
testcase_12 AC 143 ms
41,536 KB
testcase_13 AC 133 ms
41,368 KB
testcase_14 AC 131 ms
41,348 KB
testcase_15 AC 137 ms
41,520 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int K = scan.nextInt();
		scan.close();
		int min = K;
		int a = 0;
		int b = 0;
		for(int i = 1; i <= 110; i++) {
			for(int j = 1; j <= 110; j++) {
				int k = i * j;
				if(k > 10000) {
					break;
				}else {
					int t = K - k;
					if(t >= 0) {
						if(min > t) {
							min = t;
							a = i;
							b = j;
						}
					}else {
						break;
					}
				}
			}
		}
		int c = K - a * b;
		if(c == 0) {
			System.out.println(a + b);
		}else {
			System.out.println(a + b + c + 1);
		}
		if(c == 0) {
			for(int i = 0; i < a; i++) {
				System.out.print(3 + " ");
			}
			for(int i = 0; i < b; i++) {
				if(i == b -1) {
					System.out.println(4);
				}else {
					System.out.print(4 + " ");
				}
			}

		}else {
			for(int i = 0; i < a; i++) {
				System.out.print(3 + " ");
			}
			for(int i = 0; i < b; i++) {
				System.out.print(4 + " ");
			}
			for(int i = 0; i < c; i++) {
				System.out.print(5 + " ");
			}
			System.out.println(6);
		}





//		Arrays.fill(r, 0);
//		int []k = new int[120 * 120];
//		Arrays.fill(k, 0);
//		int cnt = 0;
//		for(int i = 1; i <= 110; i++) {
//			for(int j = 1; j <= 110; j++) {
//				if(i * j > 10000) {
//					break;
//				}else {
//					k[cnt] = i * j;
//					cnt ++;
//				}
//			}
//		}
//		Arrays.sort(k);
//		int []l = new int[120 * 120 - 1];
//		for(int i = 0; i < 120 * 120 - 1; i++) {
//			l[i] = k[i + 1] - k[i];
//		}
//		Arrays.sort(l);
//		System.out.println(l[l.length - 1]);
	}
}
0