USACO 2014 - Auto-Complete

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: 1300 (p) Thời gian: 4.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Bessie có một chiếc điện thoại di động mới và rất thích gửi tin nhắn, mặc dù cô thường xuyên mắc lỗi chính tả vì bộ móng lớn khiến cô khó gõ trên màn hình nhỏ. Farmer John đồng ý giúp cô bằng cách viết một ứng dụng tự động hoàn thành từ: ứng dụng nhận một phần đầu của từ và đề xuất cách hoàn thành nó.

Ứng dụng tự động hoàn thành có quyền truy cập vào một từ điển gồm \(W\) từ, mỗi từ chỉ gồm các chữ cái thường từ a đến z, và tổng số chữ cái của tất cả các từ không vượt quá \(1\,000\,000\). Đầu vào của ứng dụng còn có danh sách \(N\) phần đầu của từ (\(1 \le N \le 1\,000\)), mỗi phần gồm không quá \(1\,000\) chữ cái thường. Cùng với mỗi phần đầu thứ \(i\), một số nguyên \(K_i\) cũng được cung cấp; ứng dụng phải tìm từ thứ \(K_i\) theo thứ tự bảng chữ cái trong số các từ nhận phần đầu thứ \(i\) làm tiền tố. Nói cách khác, nếu sắp xếp tất cả các cách hoàn thành hợp lệ của phần đầu thứ \(i\), ứng dụng phải đưa ra cách hoàn thành đứng thứ \(K_i\) trong dãy này.

Dữ liệu vào

  • Dòng đầu tiên chứa hai số nguyên \(W\)\(N\).
  • \(W\) dòng tiếp theo, dòng thứ \(i\) trong số này chứa từ thứ \(i\) của từ điển.
  • \(N\) dòng cuối, dòng thứ \(i\) trong số này chứa một số nguyên \(K_i\), theo sau là một phần đầu của từ.

Ràng buộc

  • \(1 \le N \le 1\,000\).
  • Tổng số chữ cái trong tất cả các từ của từ điển không vượt quá \(1\,000\,000\).
  • Mỗi phần đầu của từ chứa không quá \(1\,000\) chữ cái thường.
  • Tất cả các từ và phần đầu của từ chỉ chứa các chữ cái thường từ a đến z.

Dữ liệu ra

Với mỗi phần đầu thứ \(i\), in ra trên một dòng chỉ số trong từ điển (một số nguyên từ \(1\) đến \(W\)) của cách hoàn thành thứ \(K_i\) theo thứ tự bảng chữ cái, hoặc \(-1\) nếu có ít hơn \(K_i\) cách hoàn thành.

Ví dụ

Ví dụ 1

Input
10 3
dab
ba
ab
daa
aa
aaa
aab
abc
ac
dadba
4 a
2 da
4 da
Output
3
1
-1
Giải thích

Các cách hoàn thành của a{aa,aaa,aab,ab,abc,ac}. Cách thứ \(4\)ab, được liệt kê ở dòng thứ \(3\) của từ điển. Các cách hoàn thành của da{daa,dab,dadba}. Cách thứ \(2\)dab, được liệt kê ở dòng thứ \(1\) của từ điển. Không có cách hoàn thành thứ \(4\) của da.

Nguồn

USACO 2014 February Contest, Silver — Auto-Complete

Tác giả: Traditional.

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: