Google Code Jam 2011 - Perfect Harmony

Xem PDF




Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1900 Thời gian: 19.5s Bộ nhớ: 1G Input: bàn phím Output: màn hình

Jeff là thành viên của dàn nhạc giao hưởng Atlantis vĩ đại. Mỗi nhạc công trong dàn nhạc đã quyết định âm thanh mà họ sẽ chơi (để đơn giản, chúng ta giả định mỗi nhạc công chỉ chơi một âm duy nhất). Chúng ta nói hai âm thanh là hòa hợp nếu tần số của bất kỳ âm nào trong số chúng chia hết cho tần số của âm còn lại (đây là một quan niệm về sự hòa hợp khá khắt khe, nhưng người Atlantis nổi tiếng là rất bảo thủ trong âm nhạc). Jeff biết rằng các nốt nhạc mà những người chơi khác chơi không nhất thiết phải hòa hợp với nhau. Anh ấy muốn nốt nhạc của mình cải thiện bản giao hưởng, vì vậy anh ấy muốn chọn nốt nhạc của mình sao cho nó hòa hợp với nốt nhạc của tất cả các nhạc công khác.

Bây giờ, điều này nghe có vẻ đơn giản (vì tất cả các tần số đều là số nguyên dương, Jeff chỉ cần chơi nốt có tần số 1, hoặc ngược lại, Bội chung nhỏ nhất của tất cả các nốt khác), nhưng không may là nhạc cụ của Jeff chỉ có một phạm vi nốt nhạc giới hạn. Hãy giúp Jeff tìm xem liệu có thể chơi một nốt nhạc hòa hợp với tất cả những người khác hay không.

Dữ liệu vào

Dòng đầu tiên của dữ liệu vào cho biết số lượng bộ thử nghiệm, T. T bộ thử nghiệm tiếp theo. Mỗi bộ thử nghiệm được mô tả bởi hai dòng. Dòng đầu tiên chứa ba số: N, LH, biểu thị số lượng nhạc công khác, nốt thấp nhất và nốt cao nhất mà nhạc cụ của Jeff có thể chơi. Dòng thứ hai chứa N số nguyên biểu thị tần số các nốt nhạc được chơi bởi những nhạc công khác.

Dữ liệu ra

Đối với mỗi bộ thử nghiệm, hãy xuất một dòng chứa "Case #x: y", trong đó x là số thứ tự bộ thử nghiệm (bắt đầu từ 1) và y là chuỗi "NO" (nếu Jeff không thể chơi một nốt nhạc thích hợp), hoặc một tần số khả thi. Nếu có nhiều tần số Jeff có thể chơi, hãy xuất tần số thấp nhất.

Ràng buộc

  • \(1 \le \mathbf{T} \le 40\).

Phân nhóm

  • Small dataset (Test set 1 - Visible):

    • \(1 \le \mathbf{N} \le 100\).
    • \(1 \le L \le H \le 10000\).
    • Tất cả các tần số không lớn hơn 10000.
  • Large dataset (Test set 2 - Hidden):

    • \(1 \le \mathbf{N} \le 10^4\).
    • \(1 \le \mathbf{L} \le \mathbf{H} \le 10^{16}\).
    • Tất cả các tần số không lớn hơn \(10^{16}\).

Điểm các phân nhóm

Mỗi Test Set tương ứng với một subtask trên LQDOJ. Bảng dưới đây giữ nguyên điểm chính thức của Google Code Jam và quy đổi tỷ lệ trên tổng điểm của bài.

Phân nhóm Điểm Google Code Jam Tỷ lệ điểm của bài
Test Set 1 8/43 18,6%
Test Set 2 35/43 81,4%

Ví dụ

Ví dụ 1

Input
2
3 2 100
3 5 7
4 8 16
1 20 5 2
Output
Case #1: NO
Case #2: 10

Nguồn

Google Code Jam 2011, Vòng 1C, bài Perfect Harmony.

Nguồn chính thức trên Google Coding Competitions Archive, phát hành theo giấy phép Apache-2.0.

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: