Canh lề trái

Xem dạng PDF

Gửi bài giải

Điểm: 800 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
Ada, Assembly, Awk, Brain****, C, C#, C++, COBOL, D, Dart, F#, Forth, Fortran, Go, Groovy, Haskell, Intercal, Java, JS, Kotlin, Lisp, Lua, ObjC, OCaml, Pascal, Perl, PHP, Pike, Prolog, PyPy, Python, Racket, Ruby, Rust, Scala, Scheme, Scratch, Sed, Swift, TCL, Turing, VB, Zig

edit.exe là một chương trình máy tính trên hệ điều hành MS-DOS nhằm tạo mới hoặc thay đổi các tệp văn bản *.TXT. Vì thực hiện trên giao diện cửa sổ console, không có đồ hoạ phức tạp như các chương trình ngày nay (Notepad, MS Word,…) nên việc tạo kiểu cho văn bản là rất hạn chế trên phần mềm này. Trong bài toán này, nhiệm vụ của bạn là thực hiện thao tác "căn lề trái" (left-align) cho một văn bản trong cửa sổ console có độ dài ~W~ tuỳ ý.

Cho một đoạn văn bản ~T~ gồm ~n~ ký tự ASCII (bao gồm 26 chữ cái Latin thường, 26 chữ cái Latin hoa, 10 chữ số thập phân, dấu phẩy, dấu chấm và dấu khoảng trắng). Hãy in ra đoạn văn bản đã tạo kiểu "căn lề trái", tức là thay thế một số ký tự khoảng trắng bằng ký tự xuống dòng '\n', sao cho đảm bảo:

  • Trên mỗi dòng, ký tự đầu tiên và ký tự cuối cùng không phải là ký tự khoảng trắng;
  • Mỗi dòng có tối đa ~W~ ký tự (không kể ký tự xuống dòng);
  • Số lượng dòng sử dụng là ít nhất;
  • Nếu có nhiều hơn một phương án, có thể in ra một phương án bất kỳ.

Chú thích.

  • Một từ là tập hợp các ký tự Latin được bao quanh bởi ký tự khoảng trắng ' '.
  • Một đoạn văn bản được gọi là chuẩn khi và chỉ khi:
    • Không tồn tại hai ký tự khoảng trắng ' ' liên tiếp nhau;
    • Liền sau một dấu phẩy , bất kỳ là một ký tự khoảng trắng ' ' hoặc xuống hàng '\n';
    • Liền sau một dấu chấm . bất kỳ là một ký tự khoảng trắng ' ' hoặc xuống hàng '\n' (trừ dấu chấm kết đoạn);
    • Mở đầu một hàng không phải là một dấu câu;
    • Kết thúc một hàng không phải là ký tự khoảng trắng ' '.

Input

  • Dòng ~1~: chứa số nguyên dương ~W~, biểu thị độ dài cửa sổ ~W~;
  • Dòng ~2~: chứa toàn bộ văn bản ~T~ trên một dòng. Dữ liệu đảm bảo ~T~ là một văn bản chuẩn.

Output

  • Dòng ~1~: In ra số nguyên dương ~M~ là số dòng của văn bản sau khi canh lề;
  • Dòng ~2~ đến ~M+1~: In ra văn bản ~P~ sau khi canh lề. Kết quả phải đảm bảo ~P~ là một văn bản chuẩn.

Ví dụ

Sample Input

98
Artificial intelligence, a nebulous construct of algorithms and data, has precipitated a paradigm shift in contemporary society. Its capacity for rapid learning and adaptation has engendered both awe and trepidation. As these sentient systems proliferate, so too do the ethical quandaries associated with their development and deployment. While the potential benefits, from accelerated medical research to optimized energy consumption, are undeniably profound, the specter of unintended consequences looms large.

Sample Output

6
Artificial intelligence, a nebulous
construct of algorithms and data, has precipitated a paradigm shift in contemporary society.
Its capacity for rapid learning and adaptation has engendered both awe and trepidation. As these
sentient systems proliferate, so too do the ethical quandaries associated with their development
and deployment. While the potential benefits, from accelerated medical research to optimized
energy consumption, are undeniably profound, the specter of unintended consequences looms large.

=======================================[Ruler, DO NOT PRINT]=======================================
         1         2         3         4         5         6         7         8         9       9
12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
===================================================================================================

Chú thích:

  • Đoạn văn sau khi canh lề có ~6~ dòng.

Cách tính điểm

Có tất cả ~16~ testcase, mỗi testcase được sinh bởi chatbot Gemini (Google) sử dụng truy vấn sau:

Generate some random English text in one long paragraph containing around [1000 - 10000] characters, AI-themed, using [simple/complex] words

Với mỗi testcase, giả sử phương án canh lề của bạn sử dụng ~M~ dòng, phương án canh lề của giám khảo sử dụng ~M_0~ dòng. Khi đó,

  • Bạn được ~5\%~ điểm nếu ~M > 2 M_0~;
  • Bạn được ~25\%~ điểm nếu ~1.5\cdot M_0 < M \le 2 M_0~;
  • Bạn được ~50\%~ điểm nếu ~M_0 < M \le 1.5\cdot M_0~;
  • Bạn được ~100\%~ điểm nếu ~M \le M_0~.

Giới hạn

  • ~100 \le |T| \le 10^4~
  • ~50 \le W \le 200~
  • Độ dài mỗi từ không vượt quá ~20~.

Bình luận

Hãy đọc nội quy trước khi bình luận.


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