Trang chủ Tin Học Lớp 9 Người ta nuôi 𝑁 con bò được đánh số từ...

Người ta nuôi 𝑁 con bò được đánh số từ 1 đến 𝑁 trong một dãy gồm 𝑁 chuồng đánh số từ 1 đến 𝑁, mỗi chuồng nuôi một con bò. Mỗi con bò được nuôi với một chế

Câu hỏi :

Người ta nuôi 𝑁 con bò được đánh số từ 1 đến 𝑁 trong một dãy gồm 𝑁 chuồng đánh số từ 1 đến 𝑁, mỗi chuồng nuôi một con bò. Mỗi con bò được nuôi với một chế độ dinh dưỡng khác nhau nên người ta chuẩn bị 𝑁 buồng ăn khác nhau, các buồng ăn cũng đượcđánh số từ 1 đến 𝑁, mỗi buồng sẽ là vị trí ăn của một con bò. Người ta quy định một con bò ở tại một chuồng phải ăn tại một buồng nào đó cố định. Biết quy định đó của mỗi con bò,bạn hãy viết chương trình tìm khoảng cách di chuyển hay số chuồng phải đi qua lớn nhất của các con bò khi đi đến buồng ăn? + Dữ liệu vào gồm: - Dòng đầu tiên ghi số nguyên dương 𝑁 (2 ≤ 𝑁 ≤ 100000) - Dòng thứ hai ghi 𝑁 số nguyên dương 𝑎1, 𝑎2, … , 𝑎𝑁. Với nghĩa con bò 𝑎𝑖(1 ≤ 𝑎𝑖 ≤𝑁) ở tại chuồng 𝑖 (𝑖 = 1,2, … , 𝑁) - Dòng thứ ba ghi 𝑁 số nguyên dương 𝑏1, 𝑏2, … , 𝑏𝑁. Với nghĩa con bò 𝑏𝑖(1 ≤ 𝑏𝑖 ≤ 𝑁)ăn tại buồng 𝑖 (𝑖 = 1,2,… , 𝑁) + Kết quả gồm một dòng ghi khoảng cách di chuyển lớn nhất của các con bò khi đi ăn. Ví dụ: Sample Input 5 2 1 5 4 3 3 5 2 4 1 Sample Output 4 Giải thích: Con bò số hiệu 2 ở chuồng số 1 và ăn tại buồng số 3, …, con bò số hiệu 3 ở chuồng số 5 và ăn tại buồng số 1, đó cũng là con bò phải đi xa nhất, qua 4 chuồng. Biết rằng: Thời gian thực hiện một test không quá một giây.

Lời giải 1 :

uses crt;
var i,n,max,k:longint; a,b:array[1..100000]of longint;
begin
   readln(n);
   for i:=1 to n do 
      begin
         read(k);
         a[k]:=i; 
      end;
   for i:=1 to n do 
      begin
         read(k);
         b[k]:=i;
         if abs(a[i]-b[i])>max then max:=abs(a[i]-b[i]);
      end;
   writeln(max);
end.

Thảo luận

-- Chúng ta sẽ đọc vào rồi chuẩn hóa về dạng: 2 dãy đều là: chuồng thứ i thì con chứa số liệu của cong bò ăn/ở đó
-- Từ đó ta chỉ cần lấy giá trị tuyệt đối vị trí chuồng - vị trí nơi cần ăn để tính max
-- https://hoidap247.com/cau-hoi/2333936 giữ giúp em câu này được ko mod

Lời giải 2 :

program Hello;
uses crt;
var a:array[1..1000000] of longint;
    n, i, x, l, max: longint;
begin
    readln(n);
    for i:= 1 to n do 
        begin
            read(x);
            a[x]:= i;
        end;
    for i:= 1 to n do 
        begin
            read(x);
            l:= abs(i - a[x]);
            if max < l then max:= l;
        end;
    writeln(max);
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ự 9

Lớp 9 - Là năm cuối ở cấp trung học cơ sở, sắp phải bước vào một kì thi căng thẳng và sắp chia tay bạn bè, thầy cô và cả kì vọng của phụ huynh ngày càng lớn mang tên "Lên cấp 3". Thật là áp lực nhưng các em hãy cứ tự tin vào bản thân là sẻ vượt qua 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