Submission #2173813


Source Code Expand

#include <bits/stdc++.h>
using namespace std;

using Matrix = array<array<int, 8>, 8>;

auto print_matrix(Matrix m) -> void {
  for (int i = 0; i < 8; ++i) {
    for (int j = 0; j < 8; ++j) {
      if (m[i][j]) {
        printf("Q");
      } else {
        printf(".");
      }
    }
    printf("\n");
  }
}

auto aux(Matrix _field, int i) -> pair<bool, Matrix> {
  if (i > 8) return pair<bool, Matrix>(true, _field);
  for (int j = 0; j < 8; ++j) {
    if (_field[i][j]) {
      return aux(_field, i + 1);
    }
  }
  for (int j = 0; j < 8; ++j) {
    bool _continue = false;
    for (int k = 0; k < 8; ++k) {
      if (_field[k][j]) {
        _continue = true;
        break;
      }
    }
    if (!_continue) {
      for (int k = 1; k < 8; ++k) {
        if (i + k < 8 && j + k < 8 && _field[i + k][j + k]) {
          _continue = true;
          break;
        }
        if (i + k < 8 && j - k >= 0 && _field[i + k][j - k]) {
          _continue = true;
          break;
        }
        if (i - k >= 0 && j + k < 8 && _field[i - k][j + k]) {
          _continue = true;
          break;
        }
        if (i - k >= 0 && j - k >= 0 && _field[i - k][j - k]) {
          _continue = true;
          break;
        }
      }
    }
    if (_continue) continue;
    
    Matrix _newfield = _field;
    _newfield[i][j] = true;
    auto _res = aux(_newfield, i + 1);
    if (_res.first) {
      return pair<bool, Matrix>(true, _res.second);
    }
  }
  return pair<bool, Matrix>(false, Matrix());
}

auto main() -> int {
  Matrix _field;
  for (int i = 0; i < 8; ++i) {
    for (int j = 0; j < 9 /* \n */; ++j) {
      char c;
      scanf("%c", &c);
      switch (c) {
        case '.': _field[i][j] = false; break;
        case 'Q': _field[i][j] = true; break;
      }
    }
  }
  auto _res = aux(_field, 0);
  if (_res.first) {
    print_matrix(_res.second);
  } else {
    printf("No Answer\n");
  }
}

Submission Info

Submission Time
Task C - パズルのお手伝い
User tigm5
Language C++14 (GCC 5.4.1)
Score 0
Code Size 1990 Byte
Status WA
Exec Time 2 ms
Memory 256 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:71:22: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
       scanf("%c", &c);
                      ^

Judge Result

Set Name All
Score / Max Score 0 / 100
Status
AC × 32
WA × 10
Set Name Test Cases
All 00_sample1.txt, 00_sample2.txt, 01_rnd_00.txt, 01_rnd_01.txt, 01_rnd_02.txt, 01_rnd_03.txt, 01_rnd_04.txt, 01_rnd_05.txt, 01_rnd_06.txt, 01_rnd_07.txt, 01_rnd_08.txt, 01_rnd_09.txt, 01_rnd_10.txt, 01_rnd_11.txt, 01_rnd_12.txt, 01_rnd_13.txt, 01_rnd_14.txt, 01_rnd_15.txt, 01_rnd_16.txt, 01_rnd_17.txt, 01_rnd_18.txt, 01_rnd_19.txt, 01_rnd_20.txt, 01_rnd_21.txt, 01_rnd_22.txt, 01_rnd_23.txt, 01_rnd_24.txt, 01_rnd_25.txt, 01_rnd_26.txt, 01_rnd_27.txt, 01_rnd_28.txt, 01_rnd_29.txt, 01_rnd_30.txt, 01_rnd_31.txt, 01_rnd_32.txt, 01_rnd_33.txt, 01_rnd_34.txt, 01_rnd_35.txt, 01_rnd_36.txt, 01_rnd_37.txt, 01_rnd_38.txt, 01_rnd_39.txt
Case Name Status Exec Time Memory
00_sample1.txt AC 1 ms 256 KB
00_sample2.txt AC 1 ms 256 KB
01_rnd_00.txt AC 1 ms 256 KB
01_rnd_01.txt AC 1 ms 256 KB
01_rnd_02.txt AC 1 ms 256 KB
01_rnd_03.txt AC 1 ms 256 KB
01_rnd_04.txt WA 1 ms 256 KB
01_rnd_05.txt AC 1 ms 256 KB
01_rnd_06.txt AC 1 ms 256 KB
01_rnd_07.txt AC 1 ms 256 KB
01_rnd_08.txt WA 1 ms 256 KB
01_rnd_09.txt AC 1 ms 256 KB
01_rnd_10.txt AC 1 ms 256 KB
01_rnd_11.txt AC 1 ms 256 KB
01_rnd_12.txt AC 1 ms 256 KB
01_rnd_13.txt AC 1 ms 256 KB
01_rnd_14.txt WA 1 ms 256 KB
01_rnd_15.txt AC 1 ms 256 KB
01_rnd_16.txt AC 1 ms 256 KB
01_rnd_17.txt WA 1 ms 256 KB
01_rnd_18.txt AC 1 ms 256 KB
01_rnd_19.txt WA 1 ms 256 KB
01_rnd_20.txt AC 1 ms 256 KB
01_rnd_21.txt AC 1 ms 256 KB
01_rnd_22.txt WA 1 ms 256 KB
01_rnd_23.txt AC 1 ms 256 KB
01_rnd_24.txt AC 1 ms 256 KB
01_rnd_25.txt AC 1 ms 256 KB
01_rnd_26.txt AC 1 ms 256 KB
01_rnd_27.txt WA 1 ms 256 KB
01_rnd_28.txt AC 1 ms 256 KB
01_rnd_29.txt AC 1 ms 256 KB
01_rnd_30.txt AC 1 ms 256 KB
01_rnd_31.txt AC 1 ms 256 KB
01_rnd_32.txt AC 1 ms 256 KB
01_rnd_33.txt AC 2 ms 256 KB
01_rnd_34.txt WA 1 ms 256 KB
01_rnd_35.txt WA 1 ms 256 KB
01_rnd_36.txt AC 1 ms 256 KB
01_rnd_37.txt WA 1 ms 256 KB
01_rnd_38.txt AC 1 ms 256 KB
01_rnd_39.txt AC 1 ms 256 KB