atcoder#ABC199E. [ABC199E] Permutation

[ABC199E] Permutation

题目描述

(1, 2, 3, , N) (1,\ 2,\ 3,\ \dots,\ N) を並び替えてできる数列 a a であって、以下の条件を満たすものの数を出力してください。

  • 1  i  M 1\ \le\ i\ \le\ M を満たす全ての整数 i i について、a1, a2, a3, , aXi a_1,\ a_2,\ a_3,\ \dots,\ a_{X_i} の中に Yi Y_i 以下の数は Zi Z_i 個以下しか存在しない

输入格式

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

N N M M X1 X_1 Y1 Y_1 Z1 Z_1 X2 X_2 Y2 Y_2 Z2 Z_2 X3 X_3 Y3 Y_3 Z3 Z_3   \hspace{23pt}\ \vdots XM X_M YM Y_M ZM Z_M

输出格式

答えを出力せよ。

题目大意

第一行给定 nnmm。后 mm 行,每行给定一个规则。

  • 规则:后 mm 行每行给出三个整数 Xi,Yi,ZiX_i,Y_i,Z_i,表示在排列的前 XiX_i 个数字中最多只能有 ZiZ_i 个数字小于等于 YiY_i

构造长度为 nn 的排列,求最多可以构造多少个满足所有规则的排列。

3 1
2 2 1
4
5 2
3 3 2
4 4 3
90
18 0
6402373705728000

提示

制約

  • 2  N  18 2\ \le\ N\ \le\ 18
  • 0  M  100 0\ \le\ M\ \le\ 100
  • 1  Xi < N 1\ \le\ X_i\ \lt\ N
  • 1  Yi < N 1\ \le\ Y_i\ \lt\ N
  • 0  Zi < N 0\ \le\ Z_i\ \lt\ N
  • 入力に含まれる値は全て整数である

Sample Explanation 1

条件を満たす a a は以下の 4 4 つです。 - (1, 3, 2) (1,\ 3,\ 2) - (2, 3, 1) (2,\ 3,\ 1) - (3, 1, 2) (3,\ 1,\ 2) - (3, 2, 1) (3,\ 2,\ 1) (1, 2, 3) (1,\ 2,\ 3) (2, 1, 3) (2,\ 1,\ 3) は、a1, a2 a_1,\ a_2 の中に 2 2 以下の数が 2 2 つあるため条件を満たしません。