Submission #1868739


Source Code Expand

#include <bits/stdc++.h>
#define FOR(i,a,b) for(int i=a; i<b; i++)
#define REP(i,a) FOR(i,0,a)
using namespace std;
int judge(unordered_map<int, int> m) {
  FOR(i,1,9) {
    auto itr1=m.find(i);
    if (itr1==m.end()) continue;
    FOR(j,i+1,9) {
      auto itr2 = m.find(j);
      if (itr2==m.end()) continue;
//      printf("(%d, %d)-(%d, %d)\n",itr1->first, itr1->second, itr2->first, itr2->second);
      if (itr1->first == itr2->first || itr1->second == itr2->second
        || itr1->first+itr1->second == itr2->first+itr2->second
        || itr1->first-itr1->second == itr2->first-itr2->second) return 0;
    }
  }
  return 1;
}
int main(){
  char c[8][8];
  unordered_map<int, int> m;
  vector<int> v, l;
  int cnt=0;
  REP(i,8) {
    REP(j,8) {
      scanf(" %c", &c[i][j]);
      if (c[i][j] == 'Q') {
        auto itr=m.find(i+1);
        m[i+1] = j+1;
      }
    }
  }
  if (m.size()!=3 || judge(m)!=1) {
    printf("No Answer\n");
    return 0;
  }
  REP(i,8) {
    auto itr=m.find(i+1);
    if (itr==m.end()) v.push_back(i+1);
    int cnt=0;
    for (itr=m.begin(); itr!=m.end(); ++itr) {
      if (i+1 == itr->second) cnt=1;
    }
    if (cnt==0) l.push_back(i+1);
  }
  cerr << v.size() << endl;
  REP(i,l.size()) cerr << l[i];
  cerr << endl;
  do {
    unordered_map<int, int> mm = m;
    REP(i,v.size()) mm[v[i]]=l[i];    REP(i,v.size()) cerr << v[i];
    cerr << endl;
    if (judge(mm)==1) {
      char ans[8][8];
      REP(i,8) {
        REP(j,8) {
          if (mm[i+1]==j+1) printf("Q");
          else printf(".");
        }
        printf("\n");
      }
      return 0;
    }
  } while (next_permutation(v.begin(), v.end()));
//  for (auto itr=m.begin(); itr!=m.end(); ++itr) printf("%d-%d\n", itr->first, itr->second);

  printf("\n");
}

Submission Info

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

Compile Error

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

Judge Result

Set Name All
Score / Max Score 0 / 100
Status
AC × 35
WA × 7
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 WA 6 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 WA 2 ms 256 KB
01_rnd_04.txt AC 1 ms 256 KB
01_rnd_05.txt WA 2 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 AC 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 2 ms 256 KB
01_rnd_14.txt AC 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 AC 1 ms 256 KB
01_rnd_18.txt AC 1 ms 256 KB
01_rnd_19.txt AC 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 AC 1 ms 256 KB
01_rnd_23.txt WA 2 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 AC 1 ms 256 KB
01_rnd_28.txt WA 2 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 1 ms 256 KB
01_rnd_34.txt AC 1 ms 256 KB
01_rnd_35.txt AC 1 ms 256 KB
01_rnd_36.txt AC 1 ms 256 KB
01_rnd_37.txt AC 1 ms 256 KB
01_rnd_38.txt WA 2 ms 256 KB
01_rnd_39.txt WA 2 ms 256 KB