cho N(N<=1000) đoạn số nguyên [ai,bi], hãy tìm một số mà số đó thuộc nhiều đoạn số nguyên nhất Dữ liệu vào: từ file TIMSO.INP gồm - dòng đầu là số n là số đoạn số nguyên - n dòng tiếp theo, mỗi dòng có 2 số nguyên là các số ai và bi của đoạn thứ i ( mỗi số cách nhau ít nhất 1 kí tự trắng) vd TIMSO.INP TIMSO.OUT 5 5 0 10 0 10 2 3 4 7 4 7 3 5 3 5 58 5 8 pascal nha, khỏi phải làm file hay text giải thích ý tưởng với luôn :>
1 câu trả lời
Ý tưởng:
- Tăng tất cả các số nằm trong đoạn a[i], b[i] lên 1
sau đó tìm xem số nào được tăng nhiều nhất, in ra số đó và tất cả đoạn chứa nó :))
uses crt;
var cnt:array[0..10] of word;
a,b:array[0..1000] of byte;
i,j,n,m,ma:byte;
begin
clrscr;
readln(n);
for i:=1 to n do
begin
read(a[i],b[i]);
for j:=a[i] to b[i] do
inc(cnt[j]);
end;
m:=0;ma:=cnt[0];
for i:=1 to 10 do
if cnt[i] > ma then
begin
m:=i;
ma:=cnt[i];
end;
writeln(m);
for i:=1 to n do
if (a[i] <= m) and (m <= b[i]) then
writeln(a[i],' ',b[i]);
readln;
end.
Câu hỏi trong lớp
Xem thêm