Submission #1367742


Source Code Expand

#include <cstdio>
#include <stdio.h>
#include <string>
#include <string.h>
#include <algorithm>
#include <vector>
#include <iostream>
using namespace std;

typedef vector<int> vi;

#define MAX_INT 114514

#define FOR(i,a,b) for (int i=(a);i<(b);i++)
#define RFOR(i,a,b) for (int i=(b)-1;i>=(a);i--)
#define REP(i,n) for (int i=0;i<(n);i++)
#define RREP(i,n) for (int i=(n)-1;i>=0;i--)

#define ALL(a) (a).begin(),a.end()
#define MAXE(a) *max_element(ALL(a))
#define MINE(a) *min_element(ALL(a))

string s[8];
int a[8];
vi b;

string atos (int a){
	string si = "........";
	si[a] = 'Q';
	return si;
}

int check(int a[]){
	REP(i,8) REP(j,8){
		if(i==j) continue;

		int d = abs(i - j);
		if( abs(a[j] - a[i]) == d ){
			return 0;
		}

	}
	return 1;
}

void swap_a(int x){
	FOR(i,x,4){
		swap(a[b[i]],a[b[i+1]]);
	}
}
void swap_b(int x){
	for(int i = 4;i>x;i--){
		swap(a[b[i-1]],a[b[i]]);
	}
}

/* i = 0...4 */
int DFS(int i){
	if(i == 4){
		if(check(a) == 1) return 1;
		swap_a(3);
		if(check(a) == 1) return 1;
		swap_b(3);
		return 0;
	}
	else{
		if(DFS(i+1) == 1) return 1;
		swap_a(i);
		if(DFS(i+1) == 1) return 1;
		swap_b(i);
		return 0 ;
	}
}

int main(){
	REP(i,8) a[i] = MAX_INT;

	REP(i,8){
		cin >>s[i];
		REP(j,8){
			if(s[i][j] == 'Q') a[i] = j;
		}
	}
	REP(i,8) if(a[i] == MAX_INT) b.push_back(i);

	//空き配列に値をセット

	REP(i,5){
		REP(j,8){
			int popo = 1;
			REP(x,8) {
				if(a[x] == j){
					popo = 0;
					break;
				}
			}
			if(popo == 1){
				a[b[i]] = j;
				break;
			}
		}
	}


	if(DFS(0)){
		REP(i,8)cout << atos(a[i]) << endl;
	}
	else{
		cout << "No Answer" << endl;
	}


	


}

Submission Info

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

Judge Result

Set Name All
Score / Max Score 0 / 100
Status
AC × 36
WA × 6
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 WA 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 AC 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 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 WA 1 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 WA 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 AC 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 WA 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 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 AC 1 ms 256 KB
01_rnd_39.txt AC 1 ms 256 KB