結果
| 問題 |
No.522 Make Test Cases(テストケースを作る)
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2017-06-15 17:12:01 |
| 言語 | Java (openjdk 23) |
| 結果 |
AC
|
| 実行時間 | 1,785 ms / 2,000 ms |
| コード長 | 1,887 bytes |
| コンパイル時間 | 3,629 ms |
| コンパイル使用メモリ | 77,704 KB |
| 実行使用メモリ | 51,696 KB |
| 最終ジャッジ日時 | 2024-09-25 02:21:07 |
| 合計ジャッジ時間 | 10,711 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 11 |
ソースコード
package test7;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* No.522 Make Test Cases(テストケースを作る)
* http://yukicoder.me/problems/no/522
*
* hさんは以下の制約に基づきテストケースを作成するようお願いされました。
* a+b+c=Nかつa≤b≤c(ただしa,b,c,Nは正整数)
* 考えられるテストケースをすべて、
* ・aが小さい順に
* ・aが同じならbが小さい順に
* 求めてください。
*/
public class Question_21_0615 {
final static int MIN = 3;
final static int MAX = 3000;
public static void main(String[] args) {
InputStreamReader re = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(re);
try {
int inputNum = Integer.parseInt(br.readLine());
if (NumJudg(inputNum, MIN, MAX)) {
for(int a = 1; a <= inputNum; a++){
for(int b = a; a + b <= inputNum; b++){
final int c = inputNum - a - b;
if(c < b){ break; }
System.out.println(a + " " + b + " " + c);
}
}
} else {
System.out.println("入力値が有効範囲外です");
}
} catch (NumberFormatException e){
System.out.println("数字を入力して下さい");
} catch (IOException e) {
System.out.println("エラーが発生しました");
} finally {
try {
re.close();
br.close();
} catch (IOException e) {
System.out.println("InputStreamReader、BufferedReaderクローズ中にエラーが発生しました");
}
}
}
/**
* 有効値判定
* @param input 判定するもの
* @param max 最大値
* @param min 最小値
* @return 範囲内ならtrue,範囲外ならfalseを返す
*/
private static boolean NumJudg(int input, int min, int max) {
Boolean result = false;
if (min <= input && input <= max) {
result = true;
}
return result;
}
}