<div>#include <iostream></div> <div>#include <string></div> <div>using namespace std; </div> <div><br></div> <div>int M = 0, N = 0;</div> <div>char matrix[250][250]; </div> <div><br></div> <div>//C는 입력 받은 color, B는 (x,y)의 기존 color</div> <div>void fill(int X, int Y, char C, char B) {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>matrix[Y][X] = C; <span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if( Y > 0 && matrix[Y-1][X] == B ) </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>fill(X, Y-1, C, B); </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if( X > 0 && matrix[Y][X-1] == B ) </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>fill(X-1, Y, C, B);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if( Y+1 < N && matrix[Y+1][X] == B ) </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>fill(X, Y+1, C, B);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if( X+1 < M && matrix[Y][X+1] == B ) </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>fill(X+1, Y, C, B);</div> <div>}//end of fill()</div> <div><br></div> <div>int main(int argc, const char *argv[]) {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>string name; </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>char command = 0;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>char color; </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int x1, y1, x2, y2; </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int tmp;</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>while(command != 'X') {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>cin >> command; </div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>switch(command) { </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>case 'I' :</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>cin >> M >> N; <span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>case 'C' :</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for (int i = 0; i < N; i++) </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for (int j = 0; j < M; j++) </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>matrix[i][j] = 'O';</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>break;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>case 'L' :</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>cin >> x1 >> y1 >> color; </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>matrix[y1-1][x1-1] = color;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>break;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>case 'V' :</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>cin >> x1 >> y1 >> y2 >> color; </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(y1 > y2) {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>tmp = y1; </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>y1 = y2; </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>y2 = tmp;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}//end of if</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for (int i = y1-1; i < y2; i++) </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>matrix[i][x1-1] = color; <span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>break;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>case 'H' :</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>cin >> x1 >> x2 >> y1 >> color; </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(x1 > x2) {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>tmp = x1; </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>x1 = x2; </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>x2 = tmp;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}//end of if <span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for (int i = x1-1; i < x2; i++) </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>matrix[y1-1][i] = color;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>break;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>case 'K' :</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>cin >> x1 >> y1 >> x2 >> y2 >> color;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for (int i = y1-1; i < y2; i++) {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for (int j = x1-1; j < x2; j++) {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>matrix[i][j] = color;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}//end of for <span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}//end of for </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>break;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>case 'F' :</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>cin >> x1 >> y1 >> color; </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>fill(x1-1, y1-1, color, matrix[y1-1][x1-1]);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>break;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>case 'S' :</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>cin >> name; </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>cout << name << endl; </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for (int i = 0; i < N; i++) {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for (int j = 0; j < M; j++) {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>cout << matrix[i][j];<span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}//end of for </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>cout << endl;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}//end of for </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>break;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}//end of switch</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}//end of while <span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>return 0;</div> <div>}</div> <div><br></div> <div>//------------------------------------------------------<span style="font-size:9pt;line-height:1.5;">------------------------------------</span><span style="font-size:9pt;line-height:1.5;">------------------------------------</span><span style="font-size:9pt;line-height:1.5;">------------------------------------//</span></div> <div><span style="font-size:9pt;line-height:1.5;"><br></span></div> <div>윗 부분이 전체 코드입니다. 이걸 리눅스에서 돌리면 아무 문제 없이 잘 돌아가는데, UVa Online Judge에서 코드를 돌려서 확인해보려고 하니</div> <div><br></div> <div> <div>//C는 입력 받은 color, B는 (x,y)의 기존 color</div> <div>void fill(int X, int Y, char C, char B) {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>matrix[Y][X] = C; <span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if( Y > 0 && matrix[Y-1][X] == B ) </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>fill(X, Y-1, C, B); </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if( X > 0 && matrix[Y][X-1] == B ) </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>fill(X-1, Y, C, B);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if( Y+1 < N && matrix[Y+1][X] == B ) </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>fill(X, Y+1, C, B);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if( X+1 < M && matrix[Y][X+1] == B ) </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>fill(X+1, Y, C, B);</div> <div>}//end of fill()</div></div> <div><br></div> <div>이 함수 부분에서 런타임 에러가 발생하네요. 이것저것 주석달면서 하다보니 이 함수 내용 자체를 주석을 달면 코드가 돌아가서 오답이라고 나오는데, </div> <div><br></div> <div>이 부분에서 왜 런타임 에러가 발생하는지를 모르겠네요. </div> <div><br></div> <div><br class="Apple-interchange-newline">//------------------------------------------------------<span style="font-size:9pt;line-height:1.5;">------------------------------------</span><span style="font-size:9pt;line-height:1.5;">------------------------------------</span><span style="font-size:9pt;line-height:1.5;">------------------------------------//</span></div> <div><span style="font-size:9pt;line-height:1.5;"><br></span></div> <div>추가적인 문제 조건은, </div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>1 <= M, N <= 250 이고, </div> <div><br></div> <div> <p style="margin:0px;font-family:NanumGothic;font-size:12pt;line-height:normal;padding-top:0px;padding-bottom:0px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>If as a command there will be a character different from <i>I, C, L, V, H, K, F, S, X,</i> the editor should ignore <span class="Apple-tab-span" style="white-space:pre;"> </span>the whole line and pass to the next command.</p> <p style="margin:0px;font-family:NanumGothic;font-size:12pt;line-height:normal;padding-top:0px;padding-bottom:0px;"><span class="Apple-tab-span" style="white-space:pre;"> </span>In case of other errors the program behaviour is unpredictable.</p> <p style="margin:0px;font-family:NanumGothic;font-size:12pt;line-height:normal;padding-top:0px;padding-bottom:0px;"><br></p> <p style="margin:0px;font-family:NanumGothic;font-size:12pt;line-height:normal;padding-top:0px;padding-bottom:0px;">입니다. </p></div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.