Rabbit的机器人
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld

题目描述

xxx给Rabbit买了一个机器人,机器人只能在一个直轨道上行走,直轨道由无限多个方格组成,且每个方格按顺序编号,‘0’号方格右侧编号为正,‘0’号方格左侧编号为负。Rabbit可以给机器人一系列‘LR’指令,‘L’和‘R’分别代表让机器人向左走一个方格和向右走一个方格。
而且Rabbit还可以在某些方格上预先放置障碍(不能放在‘0’号方格),如果机器人执行某一个指令后会到达放置有障碍的方格,则这个指令无效。(不影响后续指令的执行)
现在Rabbit已经给机器人设置了一系列指令,为了让机器人执行最后一个指令后到达一个从来没有到过的方格,她想知道自己至少要放置多少个障碍,且在放置个数最小的情况下的方案数。

输入描述:

第一行一个整数N,表示指令长度。
接下来一行一个长度为N的字符串,代表Rabbit设置的指令。

输出描述:

如果有解,输出两个整数表示Rabbit最少放置障碍的个数以及在放置个数最小的情况下的方案数,用空格隔开。
否则输出“-1”。
示例1

输入

复制
3
LLR

输出

复制
1 1

说明

可以在-1这个位置放置障碍物,只执行向右走的操作。

备注:

1<=N<=106