atcoder#ARC147F. [ARC147F] Again ABC String

[ARC147F] Again ABC String

题目描述

長さ N N A,B,C からなる文字列 S S のうち、以下の条件を満たすものの個数を 2 2 で割ったあまり を求めてください。

  • S S 1 1 文字目から i i 文字目までからなる文字列を Si S_i とする。Si S_i に含まれる A,B,C の個数をそれぞれ Ai,Bi,Ci A_i,B_i,C_i とする。このとき、1  i  N 1\ \le\ i\ \le\ N を満たす任意の整数 i i に対し、以下が成り立つ。
    • AiBi  X A_i-B_i\ \le\ X
    • BiCi  Y B_i-C_i\ \le\ Y
    • CiAi  Z C_i-A_i\ \le\ Z

この問題は、T T ケース与えられます。

输入格式

入力は以下の形式で標準入力から与えられる。

T T case1 \mathrm{case}_1 case2 \mathrm{case}_2 \vdots caseT \mathrm{case}_T

各ケースは以下の形式で与えられる。

N N X X Y Y Z Z

输出格式

各ケースについて、答えを出力せよ。

题目大意

TT 组询问,每组询问给定 n,X,Y,Zn, X, Y, Z。你需要计数满足如下条件的字符串 SS

  • 长度为 nn
  • 只包含 ABC
  • SiS_iSS 的前 ii 个字符组成的串,Ai,Bi,CiA_i, B_i, C_i 分别为 SiS_iABC 的数量。对每个 1in1\le i\le n
    • AiBiXA_i - B_i\le X
    • BiCiYB_i - C_i\le Y
    • CiAiZC_i - A_i\le Z

答案对 2\bm 2 取模

T10, 1n109, 0X,Y,Z109T\le 10,\ 1\le n\le 10^9, \ 0\le X, Y, Z\le 10^9

1
3 2 1 0
0
10
1 22 9 92
14 7 74 39
23 50 8 6
93 40 9 60
68 8 47 64
11 68 18 24
3 26 54 8
46 17 90 86
86 76 45 55
80 68 79 62
1
0
0
0
1
1
1
0
1
0

提示

制約

  • 1  T  10 1\ \le\ T\ \le\ 10
  • 1  N  109 1\ \le\ N\ \le\ 10^9
  • 0  X,Y,Z  109 0\ \le\ X,Y,Z\ \le\ 10^9
  • 入力は全て整数である。

Sample Explanation 1

条件を満たす文字列は、AAB,AAC,ABA,ABC,ACA,ACB,BAA,BAC8 8 個があります。よって、解は 0 0 です。