Trong kỳ thi vấn đáp học sinh phải trả lời các câu hỏi của thầy giáo. Nếu trả lời đúng, thầy giáo đánh dấu bằng ký tự C (Correct), nếu sai thì đánh dấu N (No Correct). Khi học sinh trả lời đúng, thầy sẽ đưa ra câu hỏi tiếp theo khó hơn câu trước, còn khi trả lời sai thầy sẽ cho câu hỏi mới dễ hơn. Sau khi thi xong, kết quả của mỗi học sinh là một xâu các ký tự C và N. Điểm số của học sinh sẽ được tính như sau: Với các câu trả lời sai học sinh không được điểm, với mỗi câu trả lời đúng học sinh nhận được điểm bằng số lần trả lời đúng liên tiếp từ câu trả lời này trở về trước. Ví dụ, nếu kết quả là CCNNCNNCCC, thì điểm số sẽ là 1+2+0+1+0+0+1+2+3 = 10. Yêu cầu: Cho xâu kết quả độ dài không quá 1000, hãy tính điểm của học sinh.
Dữ liệu: Vào từ file văn bản SCORE.INP chứa một xâu kết quả thi. Kết quả: Đưa ra file văn bản SCORE.OUT điểm số của kết quả thi.
Giải
Const
fi='Score.INP'; fo='Score.OUT';
Var
i,j,dem,s: Integer; a: string; F: Text;
BEGIN
Assign(f,fi); Reset(f); Read(f,a); Close(f);
dem:=0;s:=0;
For i:=1 to length(a) do
if a[i]='C' then
begin
dem:=dem+1; s:=s+dem;
End
Else dem:=0;
Assign(f,fo); Rewrite(f); Write(f,s); Close(f);
END.
No comments:
Post a Comment
Cảm ơn bạn đã nhận xét