Nguồn đề bài: http://vn.spoj.com/problems/VMRR/
1. Đề bài VMRR spoj
Có một điều bí mật, mà xưa nay chỉ được lưu truyền giữa các admin VNOI, là RR có những sở thích rất khác người. Không chỉ dừng lại ở việc ngồi ngắm bảng rank của các kỳ thi trên mạng hàng tiếng đồng hồ hay ngồi học thuộc tên của các coder nổi tiếng thế giới, RR còn có sở thích tìm tên mình trong những chuỗi văn bản dài…
Nhiều khi, việc tìm tên mình mất rất nhiều thời gian, thậm chí có thể tốn nhiều ngày mà vẫn đếm nhầm. Các bạn hãy giúp RR giải quyết vấn đề này một cách tổng quát hơn nhé.
Yêu cầu
Cho một xâu S và 2 ký tự X và Y. Đếm xem chuỗi con XY xuất hiện bao nhiêu lần trong S (hai ký tự X và Y không cần liên tiếp nhưng cần xuất hiện đúng thứ tự (X trước Y)).
Input
- Dòng 1: Xâu S.
- Dòng 2: X và Y.
Output
- Gồm 1 số nguyên duy nhất là kết quả của bài toán.
Giới hạn
- Xâu S chứa không quá 106 ký tự.
- Tất cả các ký tự trong đề bài có mã ASCII từ 32 đến 255.
Chấm bài
Bài của bạn sẽ được chấm trên thang điểm 100. Điểm mà bạn nhận được sẽ tương ứng với % test mà bạn giải đúng.
Trong quá trình thi, bài của bạn sẽ chỉ được chấm với 2 test ví dụ có trong đề bài.
Khi vòng thi kết thúc, bài của bạn sẽ được chấm với bộ test đầy đủ.
Example
Input 1:
R_R_
RR
Output 1:
1
Input 2:
BA
AB
Output 2:
0
2. Gợi ý VMRR spoj
Gợi ý: bài này các bạn phải sử dụng thuật toán đếm phân phối…
3. code tham khảo VMRR spoj
const fi=''; var f:text; S:ansistring; x,y:char; res,dem:int64; i:longint; begin assign(f,fi); reset(f); readln(f,s); read(f,x,y); close(f); dem:=0; res:=0; for i:=1 to length(s) do begin if s[i]=y then inc(res,dem); if s[i]=x then inc(dem); end; writeln(res); end.