메뉴 건너뛰기

Programing

Code Up

3520

관리자 2019.12.20 19:29 조회 수 : 8

C++

#include <cstdio>

 

using namespace std;

int q[17];

const int MAX_N = 17;

int cols[20],dp[MAX_N*2], dm[MAX_N*2];

int N,count_=0;

void serch(int turn){

    if(turn==N){

        count_++;

        if(count_<=3){

            for(int i=0;i<N;i++){

                printf("%d ",q[i]);

            }

            printf("\n");

        }

        return;

    }

    for(int i=0;i<N;i++){

        if(cols[i] || dp[turn + i] || dm[turn - i + N]){

            continue;

        }

        q[turn]=i+1;

        cols[i]=1;

        dp[turn + i] = 1;

        dm[turn - i + N] = 1;

        serch(turn + 1);

        cols[i]=0;

        dp[turn + i] = 0;

        dm[turn - i + N] = 0;

    }

}

int main()

{

    scanf("%d",&N);

    serch(0);

    printf("%d",count_);

    return 0;

}

번호 제목 글쓴이 날짜 조회 수
공지 안내사항 관리자 2019.12.02 175
172 3703 관리자 2019.12.20 8
171 3701 관리자 2019.12.20 9
» 3520 관리자 2019.12.20 8
169 3120 관리자 2019.12.20 8
168 3023 관리자 2020.04.06 60
167 3022 관리자 2020.04.06 51
166 3021 관리자 2020.04.06 63
165 3009 관리자 2019.12.20 8
164 3008 관리자 2019.12.20 6
163 3007 관리자 2019.12.20 7
162 3006 관리자 2019.12.20 14
161 2748 관리자 2019.12.20 9
160 2657 관리자 2019.12.20 21
159 2652 관리자 2019.12.20 7
158 2641 관리자 2019.12.20 7
157 2634 관리자 2019.12.20 6
156 1953 관리자 2019.12.20 7
155 1936 관리자 2019.12.20 7
154 1925 관리자 2019.12.20 7
153 1525 관리자 2019.12.20 9
152 1505 관리자 2019.12.20 7
151 1476 관리자 2019.12.20 3
150 1162 관리자 2019.12.20 7
149 1161 관리자 2019.12.20 7
148 1160 관리자 2019.12.20 7
147 1159 관리자 2019.12.20 5
146 1158 관리자 2019.12.20 5
145 1157 관리자 2019.12.20 10
144 1156 관리자 2019.12.20 7
143 1155 관리자 2019.12.20 5
위로