結果
| 問題 |
No.415 ぴょん
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2017-06-19 18:30:44 |
| 言語 | Java (openjdk 23) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 2,258 bytes |
| コンパイル時間 | 3,401 ms |
| コンパイル使用メモリ | 78,540 KB |
| 実行使用メモリ | 36,848 KB |
| 最終ジャッジ日時 | 2024-10-02 07:44:51 |
| 合計ジャッジ時間 | 6,964 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 3 TLE * 1 -- * 23 |
ソースコード
package test8;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
/**
* No.415 ぴょん
* https://yukicoder.me/problems/no/415
*/
public class Question_23_0619 {
final static int PLACE_MIN = 1; //足場
final static int INTERVAL_MIN = 1; //1ぴょん幅
final static int PLACE_MAX = (int)Math.pow(10, 9) * 2;
public static void main(String[] args) {
InputStreamReader re = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(re);
try {
String[] inputStrArray = br.readLine().split(" ");
int place = Integer.parseInt(inputStrArray[0]);
int interval = Integer.parseInt(inputStrArray[1]);
int INTERVAL_MAX = place;
ArrayList<Integer> placeList = new ArrayList<Integer>();
int nowPlace = 1;
int stepCount = 0;
//有効値判定
if (NumJudg(place, PLACE_MIN, PLACE_MAX) && NumJudg(interval, INTERVAL_MIN, INTERVAL_MAX)) {
//placeまでの足場を記録 (1は初期値なので除外)
for (int i = 2; i <= place; i++) {
placeList.add(i);
}
//足場がなくなるまでループ
while(true) {
nowPlace += interval;
if (nowPlace > place) {
nowPlace = nowPlace - place;
}
if (placeList.contains(nowPlace)) {
placeList.remove(placeList.indexOf(nowPlace));
stepCount++;
} else {
break;
}
}
System.out.println(stepCount);
} 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;
}
}