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