Trang chủ Tin Học Lớp 8 Có n ngôi làng được đánh số từ 1 đến...

Có n ngôi làng được đánh số từ 1 đến n nằm trên một đường thẳng, ngôi làng thứ I nằm ở vị trí A i (1i Có một số ngôi làng có điện và những ngôi làng còn lại ch

Câu hỏi :

Có n ngôi làng được đánh số từ 1 đến n nằm trên một đường thẳng, ngôi làng thứ I nằm ở vị trí A i (1i Có một số ngôi làng có điện và những ngôi làng còn lại chưa có. Độ dài dây điện nối từ một ngôi làng i có điện đến ngôi làng j chưa có điện là . Yêu cầu: Tính tổng độ dài dây nối ít nhất để tất cả các ngôi làng đều có điện. Dữ liệu vào: tệp KEODIEN.inp có cấu trúc như sau: - Dòng đầu ghi số nguyên n (1n - Dòng thứ hai ghi A 1, A 2 , …,A n , (0A 1 <A 2 ,< …,<A n 1.000.000). - Dòng thứ ba ghi n số 0 hoặc 1 : nếu số thứ I là không nghĩa là làng này chưa có điện, ngược lại thì làng I đã có điện. Kết quả: ghi ra tệp KEODIEN.OUT ghi tổng độ dài dây nối ít nhất để mọi ngôi làng đều có điện. Ví dụ: KEODIEN.INP KEODIEN.OUT 3 5 1 5 6 1 0 0 pascal (bản ful -l part 3 :))))

Lời giải 1 :

uses crt, math;
var a: array[0..1000000] of longint;
    i, n, stt, s, m: longint;
    res: int64;
    c: boolean;
begin
    readln(n);
    for i:=1 to n do read(a[i]); read(stt);
    c:=c or (stt = 1);
    
    for i:=2 to n do begin
        read(stt);
        if c then m:=max(m, a[i] - a[i - 1]);
        s:=s + a[i] - a[i - 1];
        
        if stt = 1 then begin
            res:=res + s - m;
            c:=true;
            s:=0; m:=0;
        end;
    end;
    writeln(res + s);
readln;
end.

Thảo luận

-- https://hoidap247.com/cau-hoi/3858038
-- https://hoidap247.com/cau-hoi/3884110 helppppp
-- alo bạn
-- https://hoidap247.com/cau-hoi/3891851 sao ko giúp :((
-- https://hoidap247.com/cau-hoi/3984877 help

Lời giải 2 :

uses crt, math;
var a: array[0..1000000] of longint;
    i, n, stt, s, m: longint;
    res: int64;
    c: boolean;
begin
readln(n);
for i:=1 to n do read(a[i]); read(stt);
c:=c or (stt = 1);
for i:=2 to n do begin
read(stt);
if c then m:=max(m, a[i] - a[i - 1]);
s:=s + a[i] - a[i - 1];
if stt = 1 then begin
res:=res + s - m;
c:=true;
s:=0; m:=0;
end;
end;
writeln(res + s);
readln;
end.

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