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

Đô-mi-nô năm mới

Đề bài

Mô tả

n quân đô-mi-nô đứng trên trục số. Quân thứ i đứng tại tọa độ pi và có chiều cao li; các tọa độ thỏa mãn p1<p2<<pn.

Khi một quân đô-mi-nô đứng tại p với chiều cao l bị đẩy sang phải, nó đổ xuống và quét qua đoạn [p,p+l] trên trục số. Nếu trong lúc đổ nó chạm vào một quân khác (quân thứ jpjp+l) thì quân j cũng đổ sang phải theo đúng cơ chế đó, và phản ứng dây chuyền tiếp tục. Nói cách khác, nếu ta đang đứng ở "tầm với" hiện tại R và quân kế tiếp có tọa độ pjR thì quân đó đổ và tầm với được cập nhật thành max(R,pj+lj).

q kịch bản, mỗi kịch bản gồm hai số xy (x<y): ta đẩy quân thứ x và muốn quân thứ y cũng đổ. Đôi khi điều này không xảy ra vì có "khoảng hụt" giữa tầm với hiện tại và quân kế tiếp. Ta được phép tăng chiều cao của một số quân đô-mi-nô (bất kỳ quân nào), mỗi lần tăng chiều cao thêm 1 tốn chi phí 1.

Với mỗi kịch bản, hãy tìm chi phí nhỏ nhất để khi đẩy quân x thì quân y chắc chắn đổ. Các kịch bản độc lập với nhau: việc tăng chiều cao trong kịch bản này không ảnh hưởng đến kịch bản khác.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n.
  • n dòng tiếp theo, dòng thứ i chứa hai số nguyên pili.
  • Dòng tiếp theo chứa số nguyên q.
  • q dòng tiếp theo, mỗi dòng chứa hai số nguyên xjyj.

Dữ liệu ra

Với mỗi kịch bản, in ra một dòng chứa chi phí nhỏ nhất cần thiết. Nếu không cần chi phí nào, in ra 0.

Ràng buộc

  • 2n2·105
  • 1pi,li109p1<p2<<pn
  • 1q2·105
  • 1xj<yjn

Ví dụ

Input Output Giải thích
6
1 5
3 3
4 4
9 2
10 1
12 1
4
1 2
2 4
2 5
2 6
0
1
1
2
Đẩy quân 1 (tầm với tới 1+5=6) làm quân 2 (tại 3) đổ ngay, chi phí 0. Với kịch bản đẩy quân 2 để quân 6 đổ: cần tăng chiều cao quân 3 thêm 1 và quân 5 (hoặc quân 4) thêm 1, tổng chi phí 2.
3
1 1
500000000 100
1000000000 1000000000
5
1 2
1 3
2 3
1 3
1 2
499999998
999999898
499999900
999999898
499999998
Kịch bản đẩy quân 2 để quân 3 đổ: tầm với của quân 2 là 500000000+100, còn quân 3 ở 109, nên phải bù khoảng hụt 109(500000000+100)=499999900.

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 1.26.3 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