Submission #2226240


Source Code Expand

#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <sstream>
#include <set>
#include <map>
#include <vector>
#include <list>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <string>
#include <queue>
#include <stack>
#include <bitset>     //UWAGA - w czasie kompilacji musi byc znany rozmiar wektora - nie mozna go zmienic
#include <cassert>
#include <iomanip>        //do setprecision
#include <ctime>
#include <complex>
using namespace std;

#define FOR(i,b,e) for(int i=(b);i<(e);++i)
#define FORQ(i,b,e) for(int i=(b);i<=(e);++i)
#define FORD(i,b,e) for(int i=(b)-1;i>=(e);--i)
#define REP(x, n) for(int x = 0; x < (n); ++x)

#define ST first
#define ND second
#define PB push_back
#define MP make_pair
#define LL long long
#define ULL unsigned LL
#define LD long double

const double pi = 3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342;
const int mod=1000000007;

int vis[111]={},n,idx;
const int N=8;


int put[9]={};
int queen[N];
int board[N][N];
int f=0;

void printQueen(int queen[N])
{
    FOR(i,0,N){
			int t=queen[i];
			FOR(j,0,N){
				if(j==t){
					cout<<"Q";
				}else cout<<".";
			}
			cout<<endl;
		}
}//*/

void changeBoard(int board[N][N], int i, int j, int d)
{
    int k;

    for (k = 0; k < N; k++) {
        board[i][k] += d;
        board[k][j] += d;
    }
    if (i > j) {
        for (k = 0; k < N-(i-j); k++) {
            board[k+(i-j)][k] += d;
        }
    } else {
        for (k = 0; k < N-(j-i); k++) {
            board[k][k+(j-i)] += d;
        }
    }
    if (i+j < N) {
        for (k = 0; k <= i+j; k++) {
            board[i+j-k][k] += d;     //
        }
    } else {
        for (k = i+j-N+1; k < N; k++) {
            board[i+j-k][k] += d;
        }
    }
}

void setQueen(int i)
{
    int j;

    if (i == N) {
        printQueen(queen);
        f=1;
        return;
    }
    if(put[i]!=-1){
      setQueen(i+1);
    }else
    for (j = 0; j < N; j++) {
        if (board[i][j] == 0) {
            queen[i] = j;
            changeBoard(board, i, j, +1);
            setQueen(i+1);
            changeBoard(board, i, j, -1);      //back
        }
    }
}

void findSolution()
{

    memset(board, 0, sizeof(board));
    FOR(i,0,8){
      if(put[i]!=-1){
        queen[i] = put[i];                      //
        changeBoard(board, i, queen[i], +1);
      }
    }
    setQueen(0);
}

int main(void){
  int a[11][11]={};
  string s;
  FOR(i,0,N){
    put[i]=-1;
    cin>>s;
    FOR(j,0,N){
      if(s[j]=='.');
      else put[i]=j;
    }
  }
  findSolution();
if(!f)cout<<"No Answer"<<endl;

  return 0;
}

Submission Info

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

Judge Result

Set Name All
Score / Max Score 0 / 100
Status
AC × 18
WA × 24
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 WA 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 WA 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 WA 1 ms 256 KB
01_rnd_07.txt WA 1 ms 256 KB
01_rnd_08.txt WA 1 ms 256 KB
01_rnd_09.txt WA 1 ms 256 KB
01_rnd_10.txt AC 1 ms 256 KB
01_rnd_11.txt WA 1 ms 256 KB
01_rnd_12.txt AC 1 ms 256 KB
01_rnd_13.txt WA 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 WA 1 ms 256 KB
01_rnd_19.txt AC 1 ms 256 KB
01_rnd_20.txt WA 1 ms 256 KB
01_rnd_21.txt WA 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 WA 1 ms 256 KB
01_rnd_25.txt AC 1 ms 256 KB
01_rnd_26.txt WA 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 WA 1 ms 256 KB
01_rnd_32.txt WA 1 ms 256 KB
01_rnd_33.txt WA 1 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