trang chủ / bài tập / workdays

Số ngày làm việc

Đề bài

Mô tả

Còn lại n ngày trước khi kết thúc học kỳ, được đánh số từ 1 đến n. Ban đầu tất cả n ngày đều là ngày làm việc.

Nhà trường lần lượt công bố q mệnh lệnh. Mỗi mệnh lệnh được cho bởi ba số nguyên l, r, k:

  • Nếu k=1: tất cả các ngày từ l đến r (kể cả hai đầu mút) trở thành ngày nghỉ. Nếu trước đó một số ngày trong đoạn này đang là ngày làm việc thì chúng vẫn bị chuyển thành ngày nghỉ.
  • Nếu k=2: tất cả các ngày từ l đến r (kể cả hai đầu mút) trở thành ngày làm việc. Nếu trước đó một số ngày trong đoạn này đang là ngày nghỉ thì chúng vẫn bị chuyển thành ngày làm việc.

Nói cách khác, mỗi mệnh lệnh ghi đè trạng thái của mọi ngày trong đoạn [l,r], bất kể trạng thái trước đó của chúng.

Sau mỗi mệnh lệnh, hãy cho biết số ngày làm việc còn lại.

Dữ liệu vào

  • Dòng thứ nhất chứa số nguyên n.
  • Dòng thứ hai chứa số nguyên q.
  • q dòng tiếp theo, dòng thứ i chứa ba số nguyên li, ri, ki mô tả mệnh lệnh thứ i.

Dữ liệu ra

In ra q số nguyên, mỗi số trên một dòng. Số thứ i là số ngày làm việc còn lại sau khi i mệnh lệnh đầu tiên được công bố.

Ràng buộc

  • 1n109
  • 1q3·105
  • 1lirin
  • 1ki2

Ví dụ

Input Output Giải thích
4
6
1 2 1
3 4 1
2 3 2
1 3 2
2 4 1
1 4 2
2
0
2
3
1
4
Trạng thái các ngày (1 = làm việc) sau mỗi lệnh: 0011 → 0000 → 0110 → 1110 → 1000 → 1111. Số ngày làm việc lần lượt là 2, 0, 2, 3, 1, 4.
3
8
2 2 1
3 3 2
1 1 1
1 3 2
2 3 2
3 3 1
1 2 1
2 2 2
2
2
1
3
3
2
0
1
Bắt đầu với 111. Lệnh đầu tắt ngày 2 → 101 (2 ngày). Các lệnh sau lần lượt cho 2, 1, 3, 3, 2, 0, 1 ngày làm việc.

Bình luận

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

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 GO groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0