CF479E.Riding in a Lift

普及/提高-

通过率:0%

AC君温馨提醒

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

题目描述

Imagine that you are in a building that has exactly nn floors. You can move between the floors in a lift. Let's number the floors from bottom to top with integers from 11 to nn . Now you're on the floor number aa . You are very bored, so you want to take the lift. Floor number bb has a secret lab, the entry is forbidden. However, you already are in the mood and decide to make kk consecutive trips in the lift.

Let us suppose that at the moment you are on the floor number xx (initially, you were on floor aa ). For another trip between floors you choose some floor with number yy ( yxy≠x ) and the lift travels to this floor. As you cannot visit floor bb with the secret lab, you decided that the distance from the current floor xx to the chosen yy must be strictly less than the distance from the current floor xx to floor bb with the secret lab. Formally, it means that the following inequation must fulfill: xy<xb|x-y|<|x-b| . After the lift successfully transports you to floor yy , you write down number yy in your notepad.

Your task is to find the number of distinct number sequences that you could have written in the notebook as the result of kk trips in the lift. As the sought number of trips can be rather large, find the remainder after dividing the number by 10000000071000000007 ( 109+710^{9}+7 ).

输入格式

The first line of the input contains four space-separated integers nn , aa , bb , kk ( 2<=n<=50002<=n<=5000 , 1<=k<=50001<=k<=5000 , 1<=a,b<=n1<=a,b<=n , aba≠b ).

输出格式

Print a single integer — the remainder after dividing the sought number of sequences by 10000000071000000007 ( 109+710^{9}+7 ).

输入输出样例

  • 输入#1

    5 2 4 1
    

    输出#1

    2
    
  • 输入#2

    5 2 4 2
    

    输出#2

    2
    
  • 输入#3

    5 3 4 1
    

    输出#3

    0
    

说明/提示

Imagine that you are in a building that has exactly nn floors. You can move between the floors in a lift. Let's number the floors from bottom to top with integers from 11 to nn . Now you're on the floor number aa . You are very bored, so you want to take the lift. Floor number bb has a secret lab, the entry is forbidden. However, you already are in the mood and decide to make kk consecutive trips in the lift.

Let us suppose that at the moment you are on the floor number xx (initially, you were on floor aa ). For another trip between floors you choose some floor with number yy ( yxy≠x ) and the lift travels to this floor. As you cannot visit floor bb with the secret lab, you decided that the distance from the current floor xx to the chosen yy must be strictly less than the distance from the current floor xx to floor bb with the secret lab. Formally, it means that the following inequation must fulfill: xy<xb|x-y|<|x-b| . After the lift successfully transports you to floor yy , you write down number yy in your notepad.

Your task is to find the number of distinct number sequences that you could have written in the notebook as the result of kk trips in the lift. As the sought number of trips can be rather large, find the remainder after dividing the number by 10000000071000000007 ( 109+710^{9}+7 ).

首页