Skip to content
furutsuki edited this page Jun 1, 2015 · 3 revisions

main.cppになるであろう部分の設計

uint8_t n; // ブロックの数

sometype field;
using stone = sometype;

stone[32] stones;

void submit() {
  // ワカラン
}

void get_problem_file() {
  popen("curl"); // みたいな
}

void parse_field() {
  for (int i = 0; i < 32; ++i) {
    fgets(field[i], 32, stdin);
    get();
  }
}

void parse_block() {
  for (int i = 0; i < n; ++i) for (int j = 0; j < 8; ++j) {
    fgets(stones[i][j], 8, stdin);
    get();
  }
}

void parse() {
  parse_field();
  scanf("%d¥n", &n);
  for (int i = 0; i < n; ++i) {
    parse_block();
    get(); // 改行読み捨て
  }
}

int main() {
  get_problem_file();
  parse();
  solve();
  submit();
  return 0;
}

solveの設計を考えなくてはいけない。深さ優先探索にするつもりだけれど、返り値の型をどうするのか、どうやってどこに置いたかを憶えておくのか、そういうことが固まってない。

-> field 型を受け取って、現在スコアを返す形で再帰すれば、最大スコアは求められる。ただし、fieldを多数生成するので、時間&空間計算量が心配

Clone this wiki locally