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