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.|

PTIT124F - Vòng số nguyên tố

Một vòng tròn chứa 2n vòng tròn nhỏ (Xem hình vẽ). Các vòng tròn nhỏ được đánh số từ 1 đến n theo chiều kim đồng hồ. Cần điền các số tự nhiên từ 1 đến 2n mỗi số vào một vòng tròn nhỏ sao cho tổng của hai số trên hai vòng tròn nhỏ liên tiếp là số nguyên tố. Số điền ở vòng tròn nhỏ 1 luôn là số 1.

Input

Gồm 1 số nguyên dương n (1 < n < 10)

Output

  • Dòng đầu tiên ghi số lượng các cách điền số tìm được (k).
  • Dòng thứ i trong số k dòng tiếp theo ghi các số trong các vòng tròn nhỏ bắt đầu từ vòng tròn nhỏ 1 đọc theo thứ tự của các vòng tròn nhỏ.  Cách điền nào có thứ tự từ điển nhỏ hơn thì xếp trướcNếu K > 10000 thì chỉ cần ghi ra 10000 cách đầu tiên

Example

Input:
4
Output:

4

1 2 3 8 5 6 7 4

1 2 5 8 3 4 7 6

1 4 7 6 5 8 3 2

1 6 7 4 3 8 5 2

Được gửi lên bởi:adm
Ngày:2012-03-10
Thời gian chạy:1s
Giới hạn mã nguồn:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Ngôn ngữ cho phép:ASM32-GCC ASM32 MAWK BC C CSHARP C++ 4.3.2 CPP CPP14 COFFEE LISP sbcl DART FORTH GO JAVA JS-RHINO JS-MONKEY KTLN OCT PAS-GPC PAS-FPC PERL PERL6 PROLOG PYTHON PYTHON3 PY_NBC R RACKET SQLITE SWIFT UNLAMBDA

hide comments
2019-08-17 22:08:38
sao bị lỗi nzec vậy mọi người :(
https://ideone.com/5EY3Hs
2017-07-02 10:35:44
const fi ='';
fo='';
type vector = array[1..20] of byte;
var n:longint; f:text;
x,d:vector;
snt:array[1..50] of boolean;
lutu:array[1..10000] of vector;
k,dem,i,j,s:longint;
procedure ssnt;
var j,i:longint;
begin
fillchar(snt,sizeof(snt),true);
for i:= 2 to trunc(sqrt(50)) do
if snt[i] then
begin
j:= i*i;
while j<=50 do
begin
snt[j]:= false;
j:= j+i;
end;
end;
end;
procedure update;
begin
if (snt[s+1]= false) then exit;
inc(k);
if k>10000 then exit;
dem:=k;
lutu[k]:= x;
end;
procedure vsnt(i:longint);
var j:longint;
begin
for j:= 2 to 2*n do
if d[j]=0 then
begin
x[i]:= j;
d[j]:= 1;
s:= x[i-1]+x[i];
if (snt[s]=true) then
if i=2*n then update
else vsnt(i+1);
d[x[i]]:= 0;
end;
end;
procedure init;
begin
k:= 0 ;
x[1]:= 1;
fillchar(d,sizeof(d),0);
ssnt;
vsnt(2);
end;
procedure doctep;
begin
assign(f,fi);reset(f);
readln(f,n);
init;
close(f);
end;
procedure ghitep;
begin
assign(f,fo);rewrite(f);
writeln(f,k);
for i:= 1 to dem do
begin
for j:= 1 to 2*n do write(f,lutu[i][j],' ');
writeln(f);
end;
close(f);
end;
begin
doctep;
ghitep;
end.
2016-11-24 04:44:01
ai giải thích cái test bài với
ko hiểu sao ra 4 đc
2014-09-24 08:37:03
Đệ quy quay lui có xoaá
2013-01-29 17:39:02 Trần Vãn Dương D10CN2


Last edit: 2013-01-30 01:03:44
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.