CF935B Fafa and the Gates
题目描述
两个相邻的王国决定在它们之间修建一道墙,并在墙上设置一些大门,以便两国的居民可以相互通行。每当一位居民通过大门时,他需要支付一枚银币。
整个世界可以用平面第一象限来表示,墙修建在恒等线(即方程 $x=y$ 的直线上)。墙下方的所有点属于第一个王国,墙上方的所有点属于第二个王国。在直线上的每一个整数点(即 $(0,0)$、$(1,1)$、$(2,2)$,……)都设有一个大门。墙和大门不属于任何一个王国。
Fafa 现在位于 $(0,0)$ 处的大门,他想在两个王国之间四处走动。他已经知道了自己将要进行的移动序列 $S$。这个序列是一个字符串,每个字符代表一次移动。Fafa 可能的两种移动是:'U'(向上移动一步,从 $(x,y)$ 到 $(x,y+1)$),'R'(向右移动一步,从 $(x,y)$ 到 $(x+1,y)$)。
Fafa 想知道,按照移动序列 $S$ 走完一遍,他需要在大门处支付多少枚银币。注意,如果 Fafa 经过大门但没有从一个王国进入另一个王国,则不需要支付银币。同时,假设他在 $(0,0)$ 处的大门最初不需要支付银币,即他一开始就在正确的一侧。
输入格式
第一行包含一个整数 $n$,表示移动序列的长度,$1 \leq n \leq 10^{5}$。
第二行包含一个长度为 $n$ 的字符串 $S$,仅由字符 'U' 和 'R' 组成,描述了 Fafa 需要依次进行的移动。
输出格式
输出一行,包含一个整数,表示 Fafa 按照移动序列 $S$ 需要在大门处支付的银币数量。
说明/提示
下图描述了第三个样例。红色箭头表示 Fafa 的移动路径,绿色大门表示 Fafa 需要支付银币的大门。

由 ChatGPT 4.1 翻译