Trang chủ Tin Học Lớp 8 cho N cây xăng A1,A2,...An xây dựng trên 1 đường...

cho N cây xăng A1,A2,...An xây dựng trên 1 đường đua ô tô quốc tế là vòng tròn dài hàng nghìn km.Sức chứa của cây các cây xăng này bắt đầu từ cây xăng A1 theo

Câu hỏi :

cho N cây xăng A1,A2,...An xây dựng trên 1 đường đua ô tô quốc tế là vòng tròn dài hàng nghìn km.Sức chứa của cây các cây xăng này bắt đầu từ cây xăng A1 theo chiều kim đồng hồ lần lượt là X1,X2,...Xn.lượng xăng chi phí cho 1 ô tô đi từ A1 tới A2 là C1,từ A2 tới A3 là C2,...An-1 tới An là Cn giả sử một ô tô đến mỗi cây xăng,nó có thể lấy hết số xăng có ở các cây xăng này. Hãy lập trình giúp ban tổ chức cuộc đua tìm vị trí đặt điểm xuất phát cho ô tô tại cây xăng nào đó để ô tô chạy trên đường đua theo chiều kim đồng hồ và về ngược nơi xuất phát. Dữ liệu vào: cho bởi File TRACK.INP gồm ba dòng, trong đó : dòng đầu: là số nguyên dương N(1<=N<=1000); dòng thứ hai: gồm N số nguyên Ci(1<=i<=N); kết quả ra: ghi File TRACK.OUT gồm một dòng ghi k số, là các địa điểm có thể đặt vị trí xuất phát trên đường đua, nếu không tìm được điểm xuất phát thì ghi "VO NGHIEM". các số trên một dòng viết cách nhau ít nhất một dấu cách. ví dụ TRACK.INP TRACK.OUT 5 3 4 16 2 13 18 9 5 20 12 5 12 TRACK.INP TRACK.OUT 5 VO NGHIEM 19 20 6 14 3 13 19 15 5 16

Lời giải 1 :

program vd;

uses crt;

var a,c,k : array[1..10000] of integer;

    n,i,j,t,d,v : integer;

    ok : boolean;

begin

readln(n);

for i:=1 to n do read(a[i]);

readln;

for i:=1 to n do read(c[i]);

v:=1;

for i:=1 to n do

  begin

    d:=0;

    t:=0;

    j :=i;

    ok := true;

    while j<=n do

       begin

         if j = n then

           begin

             t:= t + a[j];

             d:=1;

             break;

           end;

         t:= t + a[j];

         t:= t - c[j];

         if t < 0 then

           begin

            ok := false;

            break;

           end;

         inc(j);

       end;

    if (d = 1) and (t - c[n] >0) and (i>1) then

      begin

        j:=1;

        while j <= i do

          begin

            t:=t+a[j];

            t:=t-c[j];

            if t < 0 then

              begin

                ok:=false;

                break;

              end;

            inc(j);

          end;

      end

    else ok := false;

    if ok = true then

      begin

        k[v] :=i;

        inc(v);

      end;

  end;

if k[1] <> 0 then for i:=1 to v-1 do write(k[i],' ')

else write('VO NGHIEM');

end.

Thảo luận

Bạn có biết?

Tin học, tiếng Anh: informatics, tiếng Pháp: informatique, là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng (ảo). Với cách hiểu hiện nay, tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin.

Nguồn : Wikipedia - Bách khoa toàn thư

Tâm sự 8

Lớp 8 - Năm thứ ba ở cấp trung học cơ sở, học tập bắt đầu nặng dần, sang năm lại là năm cuối cấp áp lực lớn dần nhưng các em vẫn phải chú ý sức khỏe nhé!

Nguồn : ADMIN :))

Liên hệ hợp tác hoặc quảng cáo: gmail

Điều khoản dịch vụ

Copyright © 2021 HOCTAPSGK