/* io.h */ /* Last Change: 2019/05/21 (Tue) 14:56:05. */ #ifndef _IO_H_ #define _IO_H_ #define MAXBLOCK 5184 // 72*72 #define MAXLINE 2592 // 72*72/2 #define MAXW 72 #define MAXH 72 extern short int W, H; // (問題で設定された) 盤面サイズ上限 extern short int w, h; // 使用する盤面サイズ extern short int blocks; // ブロックの数 extern short int block_data[MAXBLOCK+1][5][3]; // ブロックの情報 // block_data[0][X][X]は使用しない // block_data[block#][0][0] ブロックの左上のマスのx座標 (0スタート,未配置なら-1) // block_data[block#][0][1] ブロックの左上のマスのy座標 (0スタート,未配置なら-1) // block_data[block#][0][2] 未使用 // block_data[block#][1~4][X] ブロックを構成するマスの情報 // block_data[block#][1~4][0] マスの,左上マスからの相対位置 x方向 // block_data[block#][1~4][1] マスの,左上マスからの相対位置 y方向 // block_data[block#][1~4][2] マスの端点情報 (数字がなければ0,モノミノで存在しない場合は-1) extern short int board_data[MAXW][MAXH]; // 盤面情報 // board_data[x][y] が (x,y) の盤面情報を表わす // (0,0),(1,0),(2,0), ... ,(71,0) // ... // (0,71),(1,71), ... ,(71,71) // 基本的には回答フォーマットに沿う形 void reset_parameters(void); // read_problem に内包 void read_problem(void); void print_answer(void); #endif // _IO_H_