質問編集履歴
2
回答者の言われた通りにした時の出力と、新たな不具合現象の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -76,7 +76,7 @@
|
|
76
76
|
|
77
77
|
|
78
78
|
|
79
|
-
|
79
|
+
###追記
|
80
80
|
|
81
81
|
あと、入力を終了させたいときはどうすればいいのでしょう?自分で実行する際はCtrl+Cで強制終了させていましたが、上記のサイトはプログラムを自動採点するため、Ctrl+Cを押させるということはできないと思われるので、プログラムがいつまで経っても終わらない(キーボードからの入力待ちの状態が一生続く)んじゃないかと推測してます。
|
82
82
|
|
@@ -104,6 +104,42 @@
|
|
104
104
|
|
105
105
|
```
|
106
106
|
|
107
|
+
###追記2
|
108
|
+
|
109
|
+
fuzzballさんに言われた通り変更したところ、
|
110
|
+
|
111
|
+
```
|
112
|
+
|
113
|
+
[0]1 10 20
|
114
|
+
|
115
|
+
[1]100 200 125
|
116
|
+
|
117
|
+
[2]201 210 89
|
118
|
+
|
119
|
+
[3]900 1000 174
|
120
|
+
|
121
|
+
```
|
122
|
+
|
123
|
+
と、一旦正しい結果が出力されたのですが、
|
124
|
+
|
125
|
+
次のような入力を与えたところ、それ以降に正しく出力されたときと同じ入力を行っても、上記のような不具合が発生するようになりました。
|
126
|
+
|
127
|
+
|
128
|
+
|
129
|
+
```
|
130
|
+
|
131
|
+
1 10 100 2000 201 210 900 1000
|
132
|
+
|
133
|
+
```
|
134
|
+
|
135
|
+
|
136
|
+
|
137
|
+
再び正しい出力がされたときは、一旦PCの電源を落とし、再びONにした後でしたが、これは何か関係あるのでしょうか?
|
138
|
+
|
139
|
+
そもそも、プログラムを実行し終わった後、もう1回プログラムを実行したところで、2つの事象は別個のものなので、
|
140
|
+
|
141
|
+
前の実行時の入力に、あとの実行時の出力が引っ張られるなんて考えられませんが…
|
142
|
+
|
107
143
|
|
108
144
|
|
109
145
|
###該当のソースコード
|
1
別の疑問点を書き足した
test
CHANGED
File without changes
|
test
CHANGED
@@ -76,6 +76,16 @@
|
|
76
76
|
|
77
77
|
|
78
78
|
|
79
|
+
<追記>
|
80
|
+
|
81
|
+
あと、入力を終了させたいときはどうすればいいのでしょう?自分で実行する際はCtrl+Cで強制終了させていましたが、上記のサイトはプログラムを自動採点するため、Ctrl+Cを押させるということはできないと思われるので、プログラムがいつまで経っても終わらない(キーボードからの入力待ちの状態が一生続く)んじゃないかと推測してます。
|
82
|
+
|
83
|
+
前は入力は2つの整数が1組だけだと勘違いしていたので、scan.nextIntを2回だけ実行して終わればいいと思っていたのですが、
|
84
|
+
|
85
|
+
そうじゃなかったためにwhile(scan.hasNext())を使わざるを得なくなってしまい、入力側(人間)がまだ入力を続けたいのか、そうでないのかを判別させる方法が分からないという問題も出てしまいました。
|
86
|
+
|
87
|
+
|
88
|
+
|
79
89
|
```
|
80
90
|
|
81
91
|
1 10
|
@@ -112,9 +122,9 @@
|
|
112
122
|
|
113
123
|
Scanner scan = new Scanner(System.in);
|
114
124
|
|
115
|
-
int input[][] = new int[100][2]; //入力の2つの整数組を行列に入れて覚えておく
|
125
|
+
int input[][] = new int[100000][2]; //入力の2つの整数組を行列に入れて覚えておく
|
116
|
-
|
126
|
+
|
117
|
-
int output[] = new int[100]; //出力となる手順数の最大値を入れておく
|
127
|
+
int output[] = new int[100000]; //出力となる手順数の最大値を入れておく
|
118
128
|
|
119
129
|
int index = 0; //何組目の2つの整数組を見ているかを表す
|
120
130
|
|