|
11111111111111111111
|
var i,j,k,n,m:longint;
a:array[1..6]of longint;
begin
assign(input,'p1042.in');
assign(output,'p1042.out');
reset(input);
rewrite(output);
read(n,m);
for i:=1 to m-1 do
a[i]:=1;
a[m]:=n-m+1;
k:=1;
repeat
a[m]:=a[m]-1;
a[m-1]:=a[m-1]+1;
k:=k+1;
if a[m]=a[m-1]then
m:=m-1;
until m=1;
write(k);
close(input);
close(output);
end.
( 2015/4/29 13:03:18 ) |
1 |
var a,b:array[0..250] of qword;
i,j,s,n,m,k,t,v:longint;
q:boolean;
procedure print;
var i:integer;
begin
k:=k+1;
for i:=1 to m do
b[k]:=b[k]+a[i];
end;
procedure try(dep:integer);
var i:integer;
begin
for i:=a[dep-1]+1 to n-(m-dep) do
begin
a[dep]:=i;
if dep=m then
print
else
try(dep+1);
end
end;
begin
readln(n,m);
for i:=1 to n do
read(a[i]);
a[0]:=0;
try(1);
for i:=1 to k do
begin
j:=2;
repeat
if b[i] mod j=0 then
begin
q:=true;
break;
end;
j:=j+1;
until j=trunc(sqrt(b[i]));
if not q then
s:=s+1;
q:=false;
end;
write(s);
end.
( ) |
11 |
var a,b,c:array[0..250] of qword;
i,j,s,n,m,k,t,v:longint;
q:boolean;
procedure print;
var i:integer;
begin
k:=k+1;
for i:=1 to m do
c[k]:=c[k]+a[i];
end;
procedure try(dep:integer);
var i:integer;
begin
for i:=a[dep-1]+1 to n-(m-dep) do
begin
a[dep]:=i;
if dep=m then
print
else
try(dep+1);
end
end;
begin
readln(n,m);
for i:=1 to n do
read(a[i]);
a[0]:=0;
try(1);
for i:=1 to k-1 do
for j:=1 to k-i do
if c[j]>c[j+1]then
begin
t:=c[j];
c[j]:=c[j+1];
c[j+1]:=t;
end;
for i:=1 to k do
begin
if c[i]<>c[i-1]then
begin
v:=v+1;
b[v]:=c[i];
end;
end;
for i:=1 to v do
begin
j:=1;
repeat
j:=j+1;
if b[i] mod j=0 then
begin
q:=true;
break;
end;
until (j=trunc(sqrt(b[i])))or(j>=b[i] div 2);
if not q then
s:=s+1;
q:=false;
end;
write(s);
end.
( ) |
|