Mofk Cup Round 2 - YET ANOTHER BINARY STRING PROBLEM

Xem dạng PDF

Gửi bài giải


Điểm: 1,00 (OI)
Giới hạn thời gian: 2.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

MofK có 1 xâu nhị phân ~s~ (xâu chỉ gồm các kí tự ~0~ hoặc ~1~) độ dài ~n~, các kí tự được đánh số từ ~0~ đến ~n-1~. ngk muốn biết xâu ~s~, nhưng thay vì nói thẳng, MofK chỉ đưa cho ngk ~m~ gợi ý có dạng ~c\ l\ r\ k~, trong đó nếu ~c = 0~ thì xâu con ~[l..l+k]~ (gồm các kí tự có chỉ số từ ~l~ đến ~l+k~) bằng xâu con ~[r..r+k]~, còn nếu ~c = 1~ thì xâu con ~[l..l+k]~ ngược hoàn toàn xâu con ~[r..r+k]~, có nghĩa là mọi vị trí tương ứng của 2 xâu đó đều khác nhau.

ngk cho rằng MofK đưa chưa đủ gợi ý để đoán chính xác xâu ~s~, hay có thể đưa ra gợi ý sai, nên ngk muốn tính xem có bao nhiêu xâu nhị phân độ dài ~n~ thỏa mãn cả ~m~ điều kiện đã cho.

Input

Dòng đầu tiên gồm hai số nguyên ~n~ và ~m~ (~n,m\le 200000~).

~m~ dòng tiếp theo, mỗi dòng gồm bốn số nguyên ~c, l, r, k~ (~0\le c\le 1, 0\le l\le r\lt n,k\le n -1 - r~) mô tả một gợi ý.

Output

In ra số xâu nhị phân độ dài ~n~ thỏa mãn cả ~m~ gợi ý modulo ~10^9+7~ trên một dòng.

Scoring

Subtask ~1~ (~10\%~): ~n,m\le 15~

Subtask ~2~ (~30\%~): ~n,m\le 5000~

Subtask ~3~ (~60\%~): Không có ràng buộc gì thêm.

Sample Input 1

4 2
0 0 2 1
1 0 1 0

Sample Output 1

2

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.