Bắt tay


Submit solution

Points: 5 (partial)
Time limit: 1.5s
JAVA11 2.0s
Pypy 3 2.0s
Memory limit: 67M
JAVA11 977M
Pypy 3 977M

Author:
Problem type
Allowed languages
Ada, Assembly, Awk, C, C++, C11, CLANG, CLANGX, Classical, COBOL, Coffee, CSC, D lang, DART, F95, FORTH, Fortrn, GAS32, GO, Haskell, Itercal, Java, kotlin, LEAN, LISP, LUA, MONOVB, Nasm, OCAML, Pascal, Perl, php, PIKE, prolog, Pypy, Python, Ruby 2, RUST, Scala, SCM, SED, SWIFT, TCL, TUR, V8JS, VB, ZIG

Trong ca học giáo dục thể chất, thầy TICHPX chia 2n bạn sinh viên đứng thành hai hàng đối diện nhau, vị trí của các sinh viên được đánh số từ 1 tới n trong mỗi hàng. Một người ở vị trí i trong hàng 1 sẽ bắt tay với đúng một người khác ở vị trí i1,i hoặc i+1 trong hàng 2, đồng thời không ai bắt tay cùng một lúc với hai người. Trong quá trình thực hiện bài khởi động này, thầy TICHPX có thể yêu cầu một số cặp bạn đứng đối diện nhau, hoặc cặp bạn đứng liền kề nhau ở hàng 1 lên kiểm tra các động tác đánh cầu. Những cặp đánh cầu sau khi kiểm tra xong sẽ được ra về mà không phải xếp hàng. Các bạn còn lại do rất kính trọng thầy TICHPX nên sẽ không tự ý đi ra khỏi chỗ đứng ban đầu.

Với mỗi lần có một cặp ra khỏi hàng, đếm số cách để các bạn sinh viên còn lại ở hàng 1 bắt tay với các bạn ở hàng 2.

Đầu vào

Dòng đầu tiên chứa số nguyên n (1n109), số sinh viên ban đầu ở mỗi hàng.

Dòng tiếp theo chứa số nguyên q (1q2105) là tổng số lần thầy TICHPX gọi một cặp lên kiểm tra và cho sinh viên về chỗ.

q dòng tiếp theo, mỗi dòng chứa hai số nguyên ij (1i,jn) và một xâu s:

  • Nếu i=j thì sinh viên thứ i ở hàng thứ nhất và thứ hai rời hàng.
  • Nếu j=i+1 thì sinh viên thứ ii+1hàng thứ nhất ra khỏi hàng.

Đầu vào đảm bảo luôn có đôi sinh viên ra khỏi hàng.

Đầu ra

Với mỗi lúc có cặp sinh viên ra khỏi hàng, xuất ra số cách để các bạn sinh viên còn lại bắt tay với nhau.

Subtask

30% số test có q=1,1n106.

30% số test có q1000,1n109.

Ví dụ

Đầu vào:

Copy
6 3
1 2
5 6
3 3

Đầu ra:

Copy
12
7
2
QDUY

Comments