题目描述
有 n 颗珠子从左到右排成一行。
现在需要使用红、蓝、黄三种颜色为它们染色,其中恰好有 a 颗染成红色、b 颗染成蓝色、c 颗染成黄色。因此
n=a+b+c.
设第 i 颗珠子的颜色为 di。染色方案需要满足:
- 对所有 1≤i<n,均有 di=di+1;
- d1=dn。
换言之,把这一列珠子的首尾连接成环后,任意两颗相邻珠子的颜色都不同。
求满足条件的染色方案数,并对给定模数 mod 取模。
输入格式
一行包含四个整数 a,b,c,mod,其中 mod 表示模数。
输出格式
输出一个非负整数,表示染色方案数对 mod 取模后的结果。
输出应位于区间 [0,mod) 内。
样例 1
1 2 3 998244353
6
样例 2
2 3 4 998244353
54
数据范围
对于全部数据:
108≤mod≤109+100,
2≤n=a+b+c.
| 子任务 |
分值 |
特殊限制 |
| 1 |
5 |
n≤11 |
| 2 |
10 |
a,b,c≤50 |
| 3 |
5 |
a,b≤107,c=0 |
| 4 |
20 |
a,b,c≤150 |
| 5 |
a,b,c≤300 |
| 6 |
a,b,c≤1000 |
| 7 |
a,b,c≤107,并保证 mod 为质数 |