var
s, s1, s2, s3, s4, tmp1, tmp2: string;
i, a, b, c, d, e, f: integer;
begin
Writeln('Введите строку: ');
Readln(s);
//
for var k := 1 to length(s) do
begin
if (s[k] = '(') then
begin
var j := k + 1;
while (s[j].IsDigit) do
begin
tmp1 := tmp1 + s[j];
j := j + 1;
end;
var ch := s[j];
j := j + 1;
while (s[j].IsDigit) do
begin
tmp2 := tmp2 + s[j];
j := j + 1;
end;
case ch of
'+': begin s := s.Remove(k - 1, j - k + 1); s := s.Insert(k - 1, inttostr(tmp1.ToInteger + tmp2.ToInteger)); end;
'-': begin s := s.Remove(k - 1, j - k + 1); s := s.Insert(k - 1, inttostr(tmp1.ToInteger - tmp2.ToInteger)); end;
'*': begin s := s.Remove(k - 1, j - k + 1); s := s.Insert(k - 1, inttostr(tmp1.ToInteger * tmp2.ToInteger)); end;
'/': begin s := s.Remove(k - 1, j - k + 1); s := s.Insert(k - 1, inttostr(tmp1.ToInteger div tmp2.ToInteger)); end;
end;
break;
end;
end;
//
for i := 1 to length(s) do
begin
if (s[i] = '+') or (s[i] = '-') or (s[i] = '*') or (s[i] = '/') then
begin
s1 := copy(s, 1, i - 1);
s2 := copy(s, i + 1, length(s));
c := i;
end;
end;
for i := 1 to length(s1) do
begin
if (s1[i] = '+') or (s1[i] = '-') or (s1[i] = '*') or (s1[i] = '/') then
begin
s3 := copy(s1, 1, i - 1);
s4 := copy(s1, i + 1, length(s1));
e := i;
end;
end;
Val(s3, a, d);
Val(s4, b, d);
Val(s2, f, d);
if (s[e] = '/') and (s[c] = '/') then Writeln((a div b) div f);
if (s[e] = '/') and (s[c] = '*') then Writeln((a div b) * f);
if (s[e] = '+') and (s[c] = '*') then Writeln(a + (b * f));
if (s[e] = '*') and (s[c] = '*') then Writeln(a * b * f);
if (s[e] = '+') and (s[c] = '/') then Writeln(a + (b div f));
if (s[e] = '*') and (s[c] = '+') then Writeln((a * b) + f);
if (s[e] = '/') and (s[c] = '+') then Writeln((a div b) + f);
if (s[e] = '*') and (s[c] = '/') then Writeln((a * b) div f);
if (s[e] = '+') and (s[c] = '+') then Writeln(a + b + f);
if (s[e] = '-') and (s[c] = '-') then Writeln(a - b - f);
if (s[e] = '+') and (s[c] = '-') then Writeln(a + b - f);
if (s[e] = '-') and (s[c] = '+') then Writeln(a - b + f);
if (s[e] = '*') and (s[c] = '-') then Writeln((a * b) - f);
if (s[e] = '/') and (s[c] = '-') then Writeln((a div b) - f);
if (s[e] = '-') and (s[c] = '*') then Writeln(a - (b * f));
if (s[e] = '-') and (s[c] = '/') then Writeln(a - (b div f));
end.
Оғыз мемлекеті (ЫХ ғасырдың соңы— ХЫғасырдың ортасы). ЫХ ғасырдың ортасында Сырдарияның орта және төменгі ағысында, сонымен қатар Батыс Қазақстанды да қосып алатын территориясында оғыз тайпаларының саяси бірлестігі құрылды. «Оғыз» деген терминнің этимологиясы әлі де анықталмаған. Алайда "оғыз" сөзінің пайда болуы туралы әр түрлі пікірлер жоқ емес. Кейбір ғалымдар "уыз" сөзінен шықты десе, екінші біреулері "садақтың оғы" деген сөзден пайда болған дейді. Ал үшінші бір ғалымдар "өгіз" деген тотемдік сөзден пайда болды деп дәлелдеуге тырысады. Махмуд Қашқари, әл-Марвази еңбектерінде, оғыздарға жататын руларды атап кеткен: қынық, баят, язғыр, имур, қарабулақ, тутырка, т.б. Оғыздар 2 экзогамды фрактриядан құрылған. Бұлар — боз оқ және үш оқ (учук). ВЫЫЫ ғасыр ортасында түргештер мұрасы үшін қарлұқтармен болған күресте оғыздардың едәуір бөлігі Жетісуды тастап, Шу алқабына кетеді. Осы жерде олардың «Көне Гузия>> деп аталатын ордасы болды. ЫХ ғасырдың бас кезінде оғыздардың көсемі қарлұқтармен, қимақтармен одақтасып, кангар-печенег бірлестігін күйретеді, сөйтіп Сырдың төменгі жағы мен Арал өңірі мен даласын басып алады. ЫХ ғасыр соңында олар хазарлармен одақ құрып, печенегтерді жеңеді де, Орал мен Еділ арасын қол астына қаратады.
var a:Array[1..1000010] of longint;
i,n,s,ma,mi,sl:longint;
begin
assign(input,'input.txt');
reset(input);
assign(output,'output.txt');
rewrite(output);
readln(n);
mi:=(1 shl 30);
ma:=-(1 shl 30);
for i:=1 to n do begin read(a[i]);
ma:=max(ma,a[i]);
mi:=min(mi,a[i]);
end;
if ma=mi then write(0,'',n,'',0)
else
begin for i:=1 to n do
begin
if a[i]=ma then s:=s+1;
if a[i]=mi then sl:=sl+1;
end;
writeln(s,' ',sl,' ',n-s-sl);
close(input);
close(output);
end;
end.