Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

USA0001 - Бэрснүүд

NxN шатрын хөлөг дээр N ширхэг бэрсийг бүх мөр, багана, диагональ дээр нэгээс илүүгүй бэрс байхаар байрлуулах боломжийн тоог ол (хажуугийн болон гол диагоналиас гадна N-ээс бага урттай бүх диагоналиудыг тооцно).

Input

N бүхэл тоо (N<12)

Output

Эхний гурван байрлуулалтыг эхний гурван мөрөнд дүрсэлнэ (мөр тус бүрийн хувьд хэд дэх багананд бэрс байгааг илэрхийлэх тоонуудыг хооронд нь хоосон зайгаар тусгаарласнаар үүсэх N оронтой тоонуудаас эхний 3-ыг нь хэвлэнэ) Дөрөв дэх мөрөнд нийт боломжийн тоо байна

Example

Input:
7

Output:
1 3 5 7 2 4 6
1 4 7 3 6 2 5
1 5 2 6 3 7 4
40

Нэмсэн:sw40
Огноо:2007-10-15
Хугацааны хязгаарлалт:1s
Эх кодын хэмжээний хязгаарлалт:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Програмчлалын хэлүүд:Бүгд дараах хэлүүдээс бусад: ADA95 ASM64 BASH BF C++ 4.3.2 C99 CLPS CLOJURE D ERL FSHARP GO ICON ICK JS-RHINO LUA NEM NICE NODEJS OCAML PERL6 PIKE PRLG-swi SCALA SCM guile SCM qobi SED ST TCL VB.NET WHITESPACE
Эх сурвалж:USACO

hide comments
2024-01-20 13:14:27
I don't understand the question.
2019-03-11 03:09:09
#include <bits/stdc++.h>

using namespace std;
int n;
int res = 0;
int pos[20];
bool check(int row, int col ){
int value;
for(int j=1;j<row;j++){
value=pos[j];
if(value==col || abs(row-j)==abs(value-col)) return false;

}
return true;
}
void solve(int id)
{
if(id == n + 1)
{
res++;
if(res <= 3)
{
for(int i = 1; i <= n; i++) printf("%d ", pos[i]);
printf("\n");
}
}
for(int i = 1; i <= n; i++)
{
if(check(id, i)){
pos[id] = i;
solve(id + 1);
}
}
}
int main()
{
scanf("%d", &n);
solve(1);
printf("%d", res);
return 0;
}
2019-03-01 03:06:16
erguu malnuusd
2018-11-11 05:43:13
#include<stdio.h>
#include<stdlib.h>
int pos[20],n,s=0,l=0;
bool check(int i,int k)
{ int j,t;
for(j=k-1;j>=1;j--) {
t=pos[j];
if(t==i || abs(i-t)==abs(k-j)) return false;
}
return true;
}
void queen(int k)
{
if(k==n+1) {s++;l++; if(l<=3)
{for(int i=1;i<=n;i++);
;
}
}

else{for(int i=1;i<=n;i++) if(check(i,k)){pos[k]=i;
queen(k+1);
}
}
}
int main()
{
scanf("%d",&n);
queen(1);
printf("%d",s);
system("PAUSE");
}







eenee chi eniig bagshid uzuul
2018-04-02 14:56:39
Yr ni iimerhuu N<12 uyd heden if bichchuul zuer bdishd xD
2018-04-02 14:03:48
Hint: Zugeer recursive
2015-04-03 01:33:41 erdenebayr_d


Last edit: 2017-03-04 14:01:24
2015-01-05 17:16:37 G.Uuganbayar BKH
http://www.spoj.com/CSMS дээр бодлого бодоод илгээхээр алдаа гэж гарч ирээд байх юм. Яаж байгаа юм бол хэлж өгч тус болооч
2015-01-02 16:50:15 тулга


Last edit: 2016-04-06 14:27:21
2014-12-04 08:45:32 Battuwshin
haha ene ch amarhan shuu
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.