#CCBCHBON0000027. Đếm dấu cách, tab và dòng mới (Count Spaces, Tabs and Newlines)

Đếm dấu cách, tab và dòng mới (Count Spaces, Tabs and Newlines)

Đếm dấu cách, tab và dòng mới (Count Spaces, Tabs and Newlines)

Nguồn: Kernighan & Ritchie

Phiên bản: Phước Hưng OJ Extended

Đề bài

Đọc toàn bộ luồng văn bản cho tới EOF. Đếm riêng ba loại ký tự: dấu cách thông thường (U+0020), tab ngang (\t, U+0009) và ký tự xuống dòng (\n, U+000A). Chỉ đếm ký tự xuống dòng thực sự, không tự cộng thêm cho dòng cuối nếu không có \n. Một luồng rỗng cho ba kết quả 0. Bản PHOJ quy định thứ tự xuất là dấu cách, tab, dòng mới.

Input

Một luồng văn bản UTF-8 dài không quá 100000 byte, có thể rỗng, có thể có nhiều dòng và không bắt buộc kết thúc bằng xuống dòng.

Output

In đúng ba số nguyên trên một dòng, cách nhau một dấu cách: lần lượt số dấu cách, số tab, số ký tự xuống dòng.

Subtask

  • Subtask 1 (20%): Độ dài luồng không quá 20 byte UTF-8.

  • Subtask 2 (30%): Độ dài luồng không quá 500 byte UTF-8.

  • Subtask 3 (50%): Độ dài luồng không quá 100000 byte UTF-8.

Ví dụ

Ví dụ 1

Input:

A B	C
D E

Output:

2 1 2

Giải thích:

Trong dữ liệu thực tế có 2 dấu cách, 1 tab và 2 ký tự xuống dòng. Ký tự \n tại cuối dữ liệu (nếu có) vẫn được đếm.

Ví dụ 2

Input:

hello

Output:

0 0 0

Giải thích:

Trong dữ liệu thực tế có 0 dấu cách, 0 tab và 0 ký tự xuống dòng. Input kết thúc ngay sau chữ o, không có xuống dòng ở cuối; EOF không được tính là một dấu xuống dòng.

Ví dụ 3

Input:


Output:

0 0 0

Giải thích:

Trong dữ liệu thực tế có 0 dấu cách, 0 tab và 0 ký tự xuống dòng. Ký tự \n tại cuối dữ liệu (nếu có) vẫn được đếm.