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

Danh sách tệp

Đề bài

Mô tả

Trong hệ thống tệp BerFS, một tên tệp hợp lệ có dạng name.ext, trong đó:

  • name là xâu gồm các chữ cái Latin thường, độ dài từ 1 đến 8;
  • ext là xâu gồm các chữ cái Latin thường, độ dài từ 1 đến 3.

Giữa nameext có đúng một dấu chấm. Ví dụ, read.me, example.txtb.cpp là các tên tệp hợp lệ, còn version.info, ntldrcontestdata.zip thì không.

Một danh sách tên tệp đã bị hỏng: tất cả các tên tệp bị ghi nối tiếp nhau, không còn dấu phân tách nào, tạo thành một xâu s duy nhất.

Hãy chia s thành các phần liên tiếp sao cho mỗi phần là một tên tệp hợp lệ trong BerFS. Danh sách kết quả được phép chứa các tên tệp trùng nhau.

Dữ liệu vào

Một dòng duy nhất chứa xâu s gồm các chữ cái Latin thường ('a' - 'z') và dấu chấm ('.').

Dữ liệu ra

Nếu chia được, in ra "YES" ở dòng đầu tiên, sau đó mỗi dòng tiếp theo in một phần của cách chia, theo đúng thứ tự chúng xuất hiện trong s.

Nếu có nhiều cách chia hợp lệ, in ra một cách bất kỳ.

Nếu không tồn tại cách chia nào, in ra "NO" trên một dòng duy nhất.

Ràng buộc

  • 1|s|4·105
  • s chỉ gồm các chữ cái Latin thường và dấu chấm

Ví dụ

Input Output Giải thích
read.meexample.txtb.cpp YES
read.m
eexample.t
xtb.cpp
Cách chia read.me / example.txt / b.cpp cũng hợp lệ. Bài toán chấp nhận bất kỳ cách chia đúng nào.
version.infontldrcontestdata.zip NO Hai dấu chấm nằm cách nhau 21 vị trí, nên giữa chúng có 20 chữ cái. Một tên tệp chỉ phủ được tối đa 3 chữ cái sau dấu chấm thứ nhất, và tên tệp kế tiếp phủ được tối đa 8 chữ cái trước dấu chấm thứ hai, tổng cộng 11<20.
aaaaaaaa. NO Xâu kết thúc bằng dấu chấm, nên phần mở rộng của tệp cuối cùng rỗng.

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.400 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0