Hai đại sứ tại một hội nghị của Liên Hợp Quốc muốn nói chuyện với nhau, nhưng thật không may, mỗi người chỉ nói một ngôn ngữ - và họ không cùng một ngôn ngữ. May mắn thay, họ có quyền truy cập vào một số dịch giả, mỗi người hiểu và nói một vài ngôn ngữ. Nhiệm vụ của bạn là xác định chuỗi dịch giả ngắn nhất (vì bạn muốn mất ít dịch thuật nhất có thể) cho phép hai đại sứ nói chuyện với nhau.
Mã hóa
Đầu vào: hai ngôn ngữ dưới dạng chuỗi ký tự viết thường gồm 2 chữ cái (mỗi ngôn ngữ của đại sứ) và danh sách các danh sách ngôn ngữ (một danh sách cho mỗi người dịch có sẵn)
Bạn có thể thay thế lấy số nguyên thay vì mã 2 chữ cái.
Đầu ra: Một chuỗi các dịch giả theo chỉ số hoặc giá trị là bất kỳ một trong những chuỗi dịch giả ngắn nhất cho phép hai đại sứ giao tiếp. Nếu không có chuỗi dịch giả hợp lệ, hành vi không được xác định. (Bạn có thể gặp sự cố, xuất bất kỳ giá trị tùy ý hoặc chỉ ra lỗi)
Một chuỗi dịch giả hợp lệ là một trong đó dịch giả đầu tiên nói một ngôn ngữ của đại sứ, dịch giả thứ hai và sau đó chia sẻ ít nhất một ngôn ngữ với người dịch trước đó, và dịch giả cuối cùng nói ngôn ngữ của đại sứ khác.
Ví dụ
Sử dụng lập chỉ mục dựa trên zero:
es, en, [
[es, en]
] ==> [0]
en, en, [] ==> []
en, jp, [
[en, zh, ko, de],
[jp, ko]
] ==> [0, 1]
es, ru, [
[gu, en, py],
[po, py, ru],
[po, es]
] ==> [2, 1]
fr, gu, [
[it, fr, de, es, po, jp],
[en, ru, zh, ko],
[jp, th, en],
[th, gu]
] ==> [0, 2, 3]
fr, ru, [
[fr, en],
[en, ko, jp],
[en, ru]
] ==> [0, 2]
de, jp, [
[en, fr],
[ko, jp, zh],
[fr, po],
[es, ko, zh],
[de, en, th],
[en, es],
[de, fr]
] ==> [4, 5, 3, 1]
Quy tắc và giả định
- Các quy tắc IO tiêu chuẩn (sử dụng bất kỳ định dạng I / O thuận tiện nào) và các lỗ hổng bị cấm áp dụng.
- Bạn có thể cho rằng việc nói và hiểu ngôn ngữ là hoàn toàn đối xứng và tất cả các bản dịch có thể có giữa các ngôn ngữ đều có hiệu quả như nhau.
- Không có khái niệm về ngôn ngữ "đủ gần". Chẳng hạn, việc sử dụng tiếng Bồ Đào Nha ở một đầu là không yêu cầu tiếng Tây Ban Nha.
- Nếu có nhiều chuỗi dịch giả ngắn nhất, bất kỳ một trong số họ sẽ làm.
- Nếu các đại sứ tình cờ nói cùng một ngôn ngữ, danh sách người dịch sẽ trống
- Mà một trong những đại sứ là người đầu tiên không quan trọng; danh sách người dịch có thể chuyển tiếp hoặc đảo ngược.
- Đại sứ chỉ nói một ngôn ngữ vì lợi ích của thử thách này
- Dịch giả nói ít nhất hai ngôn ngữ
- Mã ngôn ngữ 2 chữ cái không cần phải tương ứng với ngôn ngữ thực
- Bạn có thể cho rằng có một trình tự dịch hợp lệ
- Nếu xuất ra chuỗi theo giá trị, bao gồm toàn bộ ngôn ngữ có sẵn, không chỉ các ngôn ngữ có liên quan.
Chúc bạn chơi golf vui vẻ!
en,fr,sp;en,gr;gr,fr