//То чувство, когда 2 часа работал над оптимизацией, а в итоге работает быстрее вариант, который писал 5 минут. //PascalABC.NET 3.2 сборка 1318
Var i,j,k,m,n,count:integer; s,s1:string; begin readln(n); for i:=1 to n do s+=inttostr(i); for i:=1 to length(s) do if (s[i]='2') or (s[i]='0') or (s[i]='1') or (s[i]='3') then s1+=s[i]; s:=s1; for i:=1 to length(s) do if s[i]='2' then for j:=i+1 to length(s) do if s[j]='0' then for k:=j+1 to length(s) do if s[k]='1' then for m:=k+1 to length(s) do if s[m]='3' then inc(count); writeln(count); end.
// PascalABC.NET 3.2, сборка 1325 от 19.10.2016 begin var a:=MatrixRandom(10,10,-10,10); var sp:=0; var sn:=0; for var i:=0 to 9 do begin for var j:=0 to 9 do begin Write(a[i,j]:4); if a[i,j]>0 then Inc(sp) else if a[i,j]<0 then Inc(sn) end; Writeln end; Writeln('Положительных ',sp,', отрицательных ',sn) end.