kết quả từ 1 tới 3 trên 3

Bài này như thế nào mọi người giúp mình

  1. #1
    Ðến Từ
    Quảng Bình
    Thành Viên Thứ: 333805
    Giới tính: Nam
    Bài gửi
    62

    Bài này như thế nào mọi người giúp mình

    Khắc Hiếu vừa đậu đại học, cậu ra Hà Nội và gặp anh Khánh Hòa – một thành viên cũ của đội tuyển quốc gia môn Tin học. Hiếu muốn tìm hiểu về các bến xe Buýt ở Hà Nội còn Hòa thì biết rất rõ về các bến xe và số lượng xe của các bến xe. Hà Nội có N bến xe Buýt được đánh số từ 1 đến N, Hòa đố Hiếu: Hãy chọn trong N bến xe Buýt một số xe sao cho tổng số xe của 3 bến bất kỳ được chọn không lớn hơn tổng số xe của các bến còn lại và số lượng bến xe được chọn là nhiều nhất. Phần thưởng là một chuyyến dạo chơi bằng xe Buýt để ngắm thành phố Hà Nội. Bạn hãy giúp Hiếu.
    Dữ liệu vào: từ file văn bản BUYT.INP
    - Dòng đầu tiên ghi số N cho biết số bến xe Buýt (4≤ N≤104)
    - Dòng tiếp theo ghi N số nguyên dương A1 ... AN (Ai là số lượng xe của bến xe thứ i, Ai≤102).
    Dữ liệu ra: Ghi vào file văn bản BUYT.OUT
    - Dòng duy nhất ghi số lượng bến xe được chọn.
    Các số trên một dòng ghi cách nhau bởi một dấu cách.
    HTML Code:
    const
            nmax=100000;
    var     a:array[1..nmax]of longint;
            n:longint;
    procedure       enter;
    var     i:longint;f:text;
    begin
            assign(f,’BUYT.inp’);Reset(f);
            readln(f,n);
            for i:=1 to n do
                    read(f,a[i]);
            Close(f);
    end;
    procedure       quicksort(l,h:longint);
    var     i,j,x,tg:longint;
    begin
            i:=l;
            j:=h;
            x:=a[(l+h) shr 1];
            repeat
                    while a[i]<x do inc(i);
                    while a[j]>x do dec(j);
                    if i<=j then
                            begin
                                    tg:=a[i];
                                    a[i]:=a[j];
                                    a[j]:=tg;
                                    inc(i); dec(j);
                            end;
            until i>j;
            if j>l then quicksort(l,j);
            if i<h then quicksort(i,h);
    end;
    procedure       main;
    var     i:longint;
            sum:int64;
            f:text;
    begin
            assign(f,’BUYT.out’);
    rewrite(f);
       sum:=0;
            for i:=1 to n do
                    sum:=sum+a[i];
            i:=n;
            while i>3 do
                if (a[i]+a[i-1]+a[i-2])<=(sum shr 1) then break
                else dec(i);
            write(f,'so xe chon duoc nhieu nhat la: ',i);
             Close(f);
    end;
    BEGIN
            enter;
            quicksort(1,n);
            main;
            readln
    Mình đã làm được rồi nhưng mình text bộ text này mình nghi nó sai với đề bài
    5
    5 6 7 8 9
    out = 3 giải thích giúp mình bộ text trên dúng hay sai
    Quick reply to this message Trả lời       

  2. #2
    Ðến Từ
    Quảng Bình
    Thành Viên Thứ: 333805
    Giới tính: Nam
    Bài gửi
    62

    Reply: Bài này như thế nào mọi người giúp mình

    ai giup minh voi ak dang can gap

  3. #3
    Ðến Từ
    TP. Hồ Chí Minh
    Thành Viên Thứ: 56897
    Giới tính: Nam
    Bài gửi
    881

    Reply: Bài này như thế nào mọi người giúp mình

    Đề bài này còn thiếu gì đó. Nếu như ko tìm đc dãy nào thỏa mãn thì in ra cái gì? Hay dãy chỉ 3 phần tử thì tính ra sao? Ngay chính ví dụ 5 6 7 8 9 của bạn đã nói lên điều đó.
    LCD: 13.3" 1920x1080 IPS
    CPU: Intel i7 - 4700MQ (2.4 GHz - 3.4 GHz)
    GPU: Nvidia GTX 765m with GDDR5 2GB
    RAM: 2x8GB G.Skill 2133
    HDD: Samsung SSD 850 Pro 512 GB
    2 kg.