Trò chơi Pinball

Xem PDF



Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1500 Thời gian: 1.0s Bộ nhớ: 256M Input: PINBALL.INP Output: PINBALL.OUT

Có một lưới một chiều có độ dài là \(n\). Ô thứ \(i\) của lưới chứa một ký tự \(s_i\), đó có thể là < hoặc >.

Khi một quả pinball được đặt lên một ô, nó sẽ di chuyển theo các quy tắc sau:

  • Nếu quả pinball đang ở ô thứ \(i\)\(s_i\)<, thì quả pinball sẽ di chuyển sang ô bên trái sau một giây. Nếu \(s_i\)>, nó sẽ di chuyển sang ô bên phải với thời gian là \(1\) giây.
  • Sau khi quả pinball di chuyển, ký tự \(s_i\) sẽ bị đảo ngược (nghĩa là nếu \(s_i\) ban đầu là <, nó sẽ trở thành >, và ngược lại).
  • Qu quả pinball sẽ dừng lại khi nó rời khỏi lưới từ biên bên trái hoặc từ biên bên phải.

Người ta thả vào ô thứ \(p\) của lưới một viên pinball, hãy tính xem mất bao nhiêu giây để quả pinball rời khỏi lưới. Có thể chứng minh rằng quả pinball sẽ luôn rời khỏi lưới trong một số bước hữu hạn.

Input

  • Dòng đầu tiên ghi hai số nguyên \(n, p\) (\(1 \le p \le n \le 2 \cdot 10^5\)).
  • Dòng thứ hai chứa một xâu ký tự \(s\) độ dài \(n\), trong đó mỗi ký tự chỉ là < hoặc >.

Output

  • Đưa ra thời gian để pinball lăn ra khỏi lưới.

Example

Test 1

Input
3 2
Output
6
Note

Quá trình di chuyển của quả pinball:

Scoring

  • Subtask \(1\) (\(60\%\) số điểm): \(n \le 1000\).
  • Subtask \(2\) (\(40\%\) số điểm): Không có ràng buộc gì thêm.

Bình luận (4)

Mới nhất
Tải bình luận...