Giúp em với ạ em cần gấp. Cho một dãy gồm N số nguyên mỗi số có giá trị trong đoạn . Hãy tìm số lần xuất hiện của số âm lớn nhất có trong dãy đã cho. Dữ liệu vào cho trong file SOAM.INP dòng đầu tiên chứa số nguyên dương N (1<=N<=104). N dòng tiếp theo, dòng i chứa số ai. Kết quả: ghi ra file SOAM.OUT trên 1 dòng duy nhất là số lần xuất hiện của số âm lớn nhất có trong dãy số đã cho, trường hợp không có lời giải hãy ghi ra số -1. SOAM.INP SOAM.OUT 5 -4 3 2 -5 7 1 5 -1 5 -6 -1 5 2
2 câu trả lời
program bai_giai;
var f,g:text;
A:array[1..10000] of integer;
n,i,max,d:integer;
begin
Assign(f,'SOAM.INP'); reset(f);
Assign(g,'SOAM.OUT'); rewrite(g);
readln(f,n);
for i:=1 to n do read(f,A[i]);
max:=0; d:=-1;
for i:=1 to n do
if (A[i]<0) and (max=0) then
begin
max:=A[i]; d:=1;
end
else if (A[i]<0) and (A[i]>max) then
begin
max:=A[i]; d:=1;
end
else if (A[i]<0) and (A[i]=max) then d:=d+1;
write(g,d);
close(f); close(g);
end.
const fi='SOAM.INP';
fo='SOAM.OUT';
var n,i,d,max:longint;
a:array[1..104]of longint;
f:text;
begin
assign(f,fi);reset(f);
readln(f,n);
for i:=1 to n do readln(f,a[i]);
close(f);
assign(f,fo);rewrite(f);
max:=low(longint);
for i:=1 to n do
if(a[i]<0)and(a[i]>max)then max:=a[i];
for i:=1 to n do
if a[i]=max then inc(d);
if d>0 then write(f,d) else write(f,-1);
close(f);
end.