diff --git a/README.md b/README.md index b347d2d122ea89267dcac919b58bc92016517cf4..88c91dce851e31494d76104149705871c6e63008 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,6 @@ +# 2019/08/26 追記 +配線失敗時にボードを出力しないように変更しました + # 実行方法 ``` cd nszw-solver diff --git a/main.cpp b/main.cpp index 3b67d95f9f6fc57a33f2d21b6667e341d3605f87..7c3cad0f3c436556d0936107332c35881cae7c0a 100644 --- a/main.cpp +++ b/main.cpp @@ -6,8 +6,12 @@ int main(void){ read_problem(); - solver(); - print_answer(); + if(solver()){ + printf("success!"); + print_answer(); + }else{ + printf("failed..."); + } return 0; } diff --git a/solver.cpp b/solver.cpp index ffbb35d857ac9d308c7d83e62c92617657fcf8b3..62808f01c539d57197bc88570a7c8ceb530769b1 100644 --- a/solver.cpp +++ b/solver.cpp @@ -26,6 +26,8 @@ short int board_str[900]; short int line_board[72][72]; short int mino_board[72][72]; short int put_data[72][72]; +short int success=0; +short int answerw=0,answerh=0; vector mino_order; void reset_board(void){ @@ -49,6 +51,8 @@ void show_blocks(){ } void read_data(void){ + answerw=W; + answerh=H; //show_blocks(); return; } @@ -552,6 +556,7 @@ int line(){ if(status){ //std::cout << "success to line" << std::endl; make_answer(); + success=1; }else{ //std::cout << "failed to line" << std::endl; } @@ -1010,11 +1015,12 @@ void solve(void){ return; } -void solver(void){ +int solver(void){ read_data(); solve(); /* shape(); */ //translate(); - return; + if(w>answerw || h>answerh) success=0; + return success; } diff --git a/solver.h b/solver.h index e90033da802910604ece9941affa4f6f945b0882..1045636ead71eded19d0839d4bf16fcf959b7862 100644 --- a/solver.h +++ b/solver.h @@ -5,6 +5,6 @@ #define MAXSIZE 128 -void solver(void); +int solver(void); #endif // _SOLVER_H_