uses crt; var n,ic: integer; c: array[1..500] of integer; print: boolean; d2,di: array [1..100] of integer; cnt,sz: word; flag:boolean; f:text; function inmas(as:integer): boolean; var a:boolean; i:word; begin a:=false; for i:=1 to sz do if d2[i]=as then begin d2[i]:=-1; a:=true; break; end; inmas:=a; end; procedure find(num,k,len: integer); var i: integer; begin if flag then exit; if len>sz+1 then exit; if num=0 then begin if c[1] >= n then print := false; if print and not(flag) and (len>2) then begin d2:=di; flag:=true; for i:=1 to len-1 do if not(inmas(c[i])) then begin flag:=false; exit; end end; end else begin for i:=1 to k do if (num-i>=0) then begin c[len]:=i; find(num-i,i,len+1); end; end; end; begin clrscr; assign (f,'e:\ss.txt'); reset(f); read(f,sz); for ic:=1 to sz do read(f,di[ic]); cnt:=0; n:=0; for ic:=1 to sz do inc (n,di[ic]); for ic:=1 to n do begin print := true; flag:=false; find(ic,ic,1); if flag then inc(cnt) end; writeln(cnt); readln end.