Gửi bài giải

Điểm: 150,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C++, Python
Mê cung
Mô tả và yêu cầu

MÊ CUNG
Bờm lạc vào mê cung gồm 𝑛 phòng đánh số từ 1 tới 𝑛, trong mỗi phòng có một đèn điện.
Mỗi đèn chỉ có đúng một công tắc và công tắc đèn 𝑖 được đặt trong phòng 𝑠𝑖 (1 ≤ 𝑠𝑖 ≤ 𝑛).
Ban đầu Bờm ở phòng số 1 và đèn phòng đó sáng, đèn các phòng khác tắt. Bờm có thể đi
sang một phòng đã sáng đèn và khi đã vào phòng, Bờm có thể tùy ý bật tắt các công tắc trong
phòng đó. Bờm cần đi sang phòng 𝑛 trong tình trạng chỉ có đèn phòng 𝑛 sáng, đèn các phòng
khác đều tắt.
Cho biết thông tin về hệ thống đèn và công tắc, hãy xác định số lần chuyển phòng ít nhất
Bờm cần thực hiện để thực hiện yêu cầu trên.
Dữ liệu: Vào từ file văn bản LMAZE.INP
 Dòng 1 chứa số nguyên 𝑛(2 ≤ 𝑛 ≤ 106).
 Dòng 2 chứa 𝑛 số nguyên 𝑠1, 𝑠2, … ,𝑠𝑛
Kết quả: Ghi ra file văn bản LMAZE.OUT một số nguyên là số lần chuyển phòng ít nhất
cần thực hiện. Trong trường hợp không có phương án thực hiện yêu cầu, ghi ra số -1.
Các số trên một dòng của Input file được ghi cách nhau ít nhất một dấu cách

Ví dụ
LMAZE.INP     LMAZE.OUT
                                         3             3
                                         2 3 1
Giải thích:
Ban đầu ở phòng 1, bật sáng phòng 3
Chuyển sang phòng 3, bật sáng phòng 2
Chuyển sang phòng 2, tắt đèn phòng 1
Chuyển sang phòng 3 tắt đèn phòng 2.
Tổng cộng 3 bước chuyển phòng.

Tải PDF gốc


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.