CF935B.Fafa and the Gates

传统题 时间 2000 ms 内存 256 MiB 4 尝试 1 已通过 1 标签

Fafa and the Gates

题目描述

两个相邻的王国决定在它们之间修建一道墙,并在墙上设置一些大门,以便两国的居民可以相互通行。每当一位居民通过大门时,他需要支付一枚银币。

整个世界可以用平面第一象限来表示,墙修建在恒等线(即方程 x=yx=y 的直线上)。墙下方的所有点属于第一个王国,墙上方的所有点属于第二个王国。在直线上的每一个整数点(即 (0,0)(0,0)(1,1)(1,1)(2,2)(2,2),……)都设有一个大门。墙和大门不属于任何一个王国。

Fafa 现在位于 (0,0)(0,0) 处的大门,他想在两个王国之间四处走动。他已经知道了自己将要进行的移动序列 SS。这个序列是一个字符串,每个字符代表一次移动。Fafa 可能的两种移动是:'U'(向上移动一步,从 (x,y)(x,y)(x,y+1)(x,y+1)),'R'(向右移动一步,从 (x,y)(x,y)(x+1,y)(x+1,y))。

Fafa 想知道,按照移动序列 SS 走完一遍,他需要在大门处支付多少枚银币。注意,如果 Fafa 经过大门但没有从一个王国进入另一个王国,则不需要支付银币。同时,假设他在 (0,0)(0,0) 处的大门最初不需要支付银币,即他一开始就在正确的一侧。

输入格式

第一行包含一个整数 nn,表示移动序列的长度,1n1051 \leq n \leq 10^{5}

第二行包含一个长度为 nn 的字符串 SS,仅由字符 'U' 和 'R' 组成,描述了 Fafa 需要依次进行的移动。

输出格式

输出一行,包含一个整数,表示 Fafa 按照移动序列 SS 需要在大门处支付的银币数量。

说明/提示

下图描述了第三个样例。红色箭头表示 Fafa 的移动路径,绿色大门表示 Fafa 需要支付银币的大门。

由 ChatGPT 4.1 翻译

样例

1
U
0
6
RURUUR
1
7
URRRUUU
2

在线编程 IDE

建议全屏模式获得最佳体验