Nộp bài | Các bài nộp | Làm tốt nhất | Về danh sách bài |
P196PROG - Problem G - Ngôn ngữ Python |
Do một vài môn trên lớp của Kirito hiện tại yêu cầu sử dụng ngôn ngữ Python nên Kirito đang bắt đầu học về nó.
Với Python, các khối lệnh không được đặt trong các dấu đóng mở như C/C++ hoặc Java. Thay vào đó, các khối lệnh được xác định bằng cách thụt lề. Giả sử các tập lệnh của Python chỉ gồm 2 loại câu lệnh.
Câu lệnh đơn: được viết trên một dòng - mỗi lệnh trên một dòng.
Câu lệnh for: là câu lệnh kép, nó chưa một hoặc nhiều câu lệnh khác. Nó bắt đầu bằng tiền tố for và sau đó là thân với một khối các câu lệnh được thụt vào lề so với vòng lặp đó. Thân có thể chưa cả hai loại câu lệnh và không thể để trống.
Do đãng trí nên Kirito đã viết một chuỗi các câu lệnh mà không thụt lề. Các bạn háy tính xem có bao nhiêu các có thể thụt lề để tạo thành một câu lệnh hợp lệ.
Input
Dòng đầu tiên gồm một số nguyên N (1 ≤ N ≤ 5000) – số lệnh mà Kirito đã viết.
N dòng sau, mỗi dòng chưa một lệnh duy nhất. Mỗi lệnh là “f” (đại diện cho câu lệnh for) hoặc “s” (đại diện cho câu lệnh đơn). Nó được đảm bảo rằng dòng cuối cùng là lệnh “s”.
Output
Một số nguyên là số cách các lệnh đã cho có thể được thụt lề lấy dư cho 109 + 7.
Example
Input: 4 s f f s Output: 1
Giải thích: Chỉ có một cách thụt lề hợp lệ như sau:
Simple
For
For
Simple
Được gửi lên bởi: | adm |
Ngày: | 2019-03-23 |
Thời gian chạy: | 1s |
Giới hạn mã nguồn: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Ngôn ngữ cho phép: | ASM32-GCC ASM32 ASM64 MAWK BC C CSHARP C++ 4.3.2 CPP CPP14 COFFEE LISP sbcl DART FORTH GO JAVA JS-RHINO JS-MONKEY KTLN OCT PAS-GPC PAS-FPC PERL PERL6 PROLOG PYTHON PYTHON3 PY_NBC R RACKET SQLITE SWIFT UNLAMBDA |