質問編集履歴

2

回答者の言われた通りにした時の出力と、新たな不具合現象の追加

2017/04/18 04:42

投稿

RinT_hinabita39
RinT_hinabita39

スコア28

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

別の疑問点を書き足した

2017/04/18 04:42

投稿

RinT_hinabita39
RinT_hinabita39

スコア28

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