trang chủ / bài tập / filesugg

Gợi ý tên tệp

Đề bài

Mô tả

Hệ điều hành BerOS đang được phát triển tính năng gợi ý tên tệp.

Trên ổ cứng có n tệp với tên lần lượt là f1,f2,,fn. Mỗi tên tệp có độ dài từ 1 đến 8 ký tự, chỉ gồm chữ cái Latin thường, chữ số và dấu chấm ('.'). Mọi tên tệp đôi một khác nhau. Lưu ý rằng bất kỳ xâu ký tự hợp lệ nào cũng có thể là tên tệp, kể cả ".", ".." hay "...".

Tính năng gợi ý xử lý q truy vấn, mỗi truy vấn là một xâu s. Với mỗi truy vấn, cần đếm số tệp có tên chứa s như một xâu con (đoạn ký tự liên tiếp), đồng thời đưa ra một tên tệp bất kỳ trong số đó.

Ví dụ: nếu các tên tệp là "read.me", "hosts", "ops" và "beros.18", với truy vấn "os" thì có 2 tệp khớp, và tên gợi ý có thể là "hosts" hoặc "beros.18".

Dữ liệu vào

  • Dòng đầu chứa số nguyên n: số lượng tệp.
  • n dòng tiếp theo, dòng thứ i chứa tên tệp fi.
  • Dòng tiếp theo chứa số nguyên q: số lượng truy vấn.
  • q dòng cuối, dòng thứ j chứa xâu truy vấn sj có độ dài từ 1 đến 8 ký tự, chỉ gồm chữ cái Latin thường, chữ số và dấu chấm.

Dữ liệu ra

In ra q dòng, dòng thứ j chứa hai giá trị cjtj, trong đó:

  • cj là số tệp có tên chứa sj như một xâu con;
  • tj là tên một tệp bất kỳ trong số đó. Nếu không có tệp nào, in một ký tự '-' thay cho tj. Nếu có nhiều tệp khớp, in tên tệp bất kỳ trong số đó.

Ràng buộc

  • 1n104
  • 1q5·104
  • Mỗi tên tệp và mỗi truy vấn có độ dài từ 1 đến 8 ký tự.

Ví dụ

Input Output Giải thích
4
test
contests
test.
.test
6
ts
.
st.
.test
contes.
st
1 contests
2 test.
1 test.
1 .test
0 -
4 test
Truy vấn "ts" chỉ khớp "contests". Truy vấn "." khớp "test." và ".test", in một trong hai. Truy vấn "contes." không khớp tệp nào nên in 0 -. Truy vấn "st" khớp cả 4 tệp, in tên bất kỳ.
8
a
b
c
d
e
f
g
h
3
h
hh
wf
1 h
0 -
0 -
Truy vấn "h" chỉ khớp tệp "h". Hai truy vấn "hh" và "wf" không là xâu con của tên tệp nào.

Bình luận

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

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0