CF611F.New Year and Cleaning

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Limak is a little polar bear. His parents told him to clean a house before the New Year's Eve. Their house is a rectangular grid with hh rows and ww columns. Each cell is an empty square.

He is a little bear and thus he can't clean a house by himself. Instead, he is going to use a cleaning robot.

A cleaning robot has a built-in pattern of nn moves, defined by a string of the length nn . A single move (character) moves a robot to one of four adjacent cells. Each character is one of the following four: 'U' (up), 'D' (down), 'L' (left), 'R' (right). One move takes one minute.

A cleaning robot must be placed and started in some cell. Then it repeats its pattern of moves till it hits a wall (one of four borders of a house). After hitting a wall it can be placed and used again.

Limak isn't sure if placing a cleaning robot in one cell will be enough. Thus, he is going to start it whw·h times, one time in each cell. Maybe some cells will be cleaned more than once but who cares?

Limak asks you one question. How much time will it take to clean a house? Find and print the number of minutes modulo 109+710^{9}+7 . It's also possible that a cleaning robot will never stop — then print "-1" (without the quotes) instead.

Placing and starting a robot takes no time, however, you must count a move when robot hits a wall. Take a look into samples for further clarification.

输入格式

The first line contains three integers nn , hh and ww ( 1<=n,h,w<=5000001<=n,h,w<=500000 ) — the length of the pattern, the number of rows and the number of columns, respectively.

The second line contains a string of length nn — the pattern of nn moves. Each character is one of uppercase letters 'U', 'D', 'L' or 'R'.

输出格式

Print one line with the answer.

If a cleaning robot will never stop, print "-1" (without the quotes). Otherwise, print the number of minutes it will take to clean a house modulo 109+710^{9}+7 .

输入输出样例

  • 输入#1

    1 10 2
    R
    

    输出#1

    30
    
  • 输入#2

    3 4 6
    RUL
    

    输出#2

    134
    
  • 输入#3

    4 1 500000
    RLRL
    

    输出#3

    -1
    

说明/提示

In the first sample house is a grid with 1010 rows and 22 columns. Starting a robot anywhere in the second column will result in only one move (thus, one minute of cleaning) in which robot will hit a wall — he tried to go right but there is no third column. Starting a robot anywhere in the first column will result in two moves. The total number of minutes is 101+102=3010·1+10·2=30 .

In the second sample a started robot will try to move "RULRULRULR..." For example, for the leftmost cell in the second row robot will make 55 moves before it stops because of hitting an upper wall.

首页