CRYPTKEY - VOI 2015 Day 1 - Chìa khóa mã số

Giới hạn
  • Thời gian: 1.0s
  • Bộ nhớ: 1536MB
  • Mã nguồn: 50000 bytes

Ghi chú: Các bài VNOI đã được chuyển qua VNOJ (Thông báo). Đề bài trên VNOI và vn.spoj.com sẽ không được cập nhật nữa. Một số đề bài không chính xác sẽ chỉ được cập nhật trên VNOJ. Bạn vẫn có thể tìm kiếm đề bài trên VNOI.

Link đọc đề trên VNOJ

Duy vừa xây dựng hệ thống mã hóa bảo mật dữ liệu cho cơ quan dựa trên cơ sở hệ mã hóa với khóa công khai. Biết rằng, trong hệ thống này khóa được sử dụng để mã hóa là một số nguyên dương thuộc tập S gồm các khóa mã hóa được xây dựng dựa trên tập gồm n số nguyên dương a 1 , a 2 , ..., a n . Theo định nghĩa, tập S là tập chỉ gồm các số được xác định theo 2 qui tắc sau đây:

Qui tắc 1 . Các số a 1 , a 2 , ..., a n là thuộc vào S.

Qui tắc 2 . Nếu x у thuộc tập S , thì cả ước số chung lớn nhất lẫn bội số chung nhỏ nhất của chúng cũng đều thuộc tập S .

Vấn đề đặt ra cho Duy bây giờ là: Kiểm tra xem một số nguyên dương k có thuộc vào tập các khóa S hay không?

Yêu cầu: Cho n số nguyên dương a 1 , a 2 , ..., a n và một số nguyên dương, hãy kiểm tra xem k có thuộc vào tập các khóa xây dựng theo các qui tắc đã nêu hay không.

 

Dữ liệu vào:

  • Dòng đầu tiên chứa số nguyên dương T ( T ≤ 5) là số lượng bộ dữ liệu;
  • Mỗi nhóm trong số T nhóm dòng tiếp theo mô tả một bộ dữ liệu gồm 3 dòng:
    • Dòng thứ nhất chứa số nguyên dương n ;
    • Dòng thứ hai chứa n số nguyên dương a 1 , a 2 , ..., a n ( a i ≤ 10 12 );
    • Dòng thứ ba chứa số nguyên dương k ( k ≤ 10 12 ).

Hai số liên tiếp trên cùng dòng được ghi cách nhau bởi dấu cách.

Dữ liệu ra:

  • Ghi ra T dòng, mỗi dòng ghi câu trả lời cho một bộ dữ liệu tương ứng trong file dữ liệu vào: ghi ‘YES’ nếu như k thuộc vào tập khóa và ghi ‘NO’ nếu như trái lại.

Ràng buộc:

  • Có 50% số test ứng với 50% số điểm của bài có n ≤ 10.
  • Có 50% số test còn lại ứng với 50% số điểm của bài có n ≤ 50000.

 

Example

Input:

2
2
45 75
15
2
45 75
9

Output:

YES
NO


  • Người up: voj
  • Nguồn bài: VOI15 day 1