Bài học ngữ pháp

Đề bài

Mô tả

Petya tự nghĩ ra một ngôn ngữ cho riêng mình. Ngôn ngữ này có ba từ loại là tính từ, danh từ, động từ, và hai giống là giống đựcgiống cái. Từ loại cùng với giống của một từ được xác định hoàn toàn bởi phần đuôi của từ đó:

Từ loại Giống đực Giống cái
Tính từ -lios -liala
Danh từ -etr -etra
Động từ -initis -inites

Một xâu ký tự là một từ của ngôn ngữ khi và chỉ khi nó kết thúc bằng đúng một trong sáu đuôi trên. Bản thân phần đuôi cũng được coi là một từ hợp lệ, nghĩa là lios, liala, etr, etra, initis, inites đều là những từ của ngôn ngữ.

Một câu hợp lệ là một trong hai trường hợp sau:

  • gồm đúng một từ hợp lệ của ngôn ngữ; hoặc
  • là một mệnh đề, tức là một dãy từ thỏa mãn đồng thời hai điều kiện:
    • theo thứ tự từ trái sang phải, dãy gồm không hoặc nhiều tính từ, tiếp theo là đúng một danh từ, rồi không hoặc nhiều động từ;
    • tất cả các từ trong dãy có cùng giống.

Cho một dãy từ, hãy kiểm tra xem dãy đó có tạo thành đúng một câu hợp lệ của ngôn ngữ Petya hay không.

Dữ liệu vào

Một dòng duy nhất chứa một hoặc nhiều từ gồm các chữ cái Latin thường. Hai từ liên tiếp cách nhau đúng một dấu cách, dữ liệu không chứa dấu cách nào khác. Các từ cho trước có thể không thuộc ngôn ngữ Petya.

Dữ liệu ra

In ra YES nếu dãy từ đã cho tạo thành đúng một câu hợp lệ, ngược lại in ra NO.

Ràng buộc

  • Tổng số ký tự trên dòng dữ liệu vào (kể cả chữ cái và dấu cách) không vượt quá 105.

Ví dụ

Input Output Giải thích
petr YES petr kết thúc bằng -etr nên là danh từ giống đực. Dãy chỉ gồm một từ hợp lệ nên đã là một câu.
nataliala kataliala vetra feinites YES Hai tính từ giống cái, rồi một danh từ giống cái, rồi một động từ giống cái: đúng thứ tự và cùng giống.
etis atis animatis etis atis amatis NO Không từ nào trong dãy kết thúc bằng một trong sáu đuôi của ngôn ngữ.
etr initis initis YES Không có tính từ nào, đúng một danh từ giống đực, sau đó là hai động từ giống đực.

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