USACO 2020 - Springboards

Xem PDF



Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 2000 (p) Thời gian: 4.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Bessie đang ở trong một lưới hai chiều, nơi cô chỉ được phép đi theo các hướng song song với một trong hai trục tọa độ. Cô bắt đầu tại điểm \((0,0)\) và muốn đến \((N,N)\) (\(1\le N\le 10^9\)). Để giúp cô, trên lưới có \(P\) ván bật (\(1\le P\le 10^5\)). Mỗi ván bật nằm tại một điểm cố định \((x_1,y_1)\) và nếu sử dụng nó, Bessie sẽ đáp xuống điểm \((x_2,y_2)\).

Bessie là một cô bò luôn hướng tới phía trước, vì vậy cô chỉ cho phép mình đi lên hoặc sang phải, không bao giờ sang trái hay đi xuống. Tương tự, mỗi ván bật đều được thiết lập để không bao giờ đưa cô sang trái hay đi xuống. Khoảng cách nhỏ nhất Bessie cần đi bộ là bao nhiêu?

Phân nhóm

  • Các test từ \(2\) đến \(5\) thỏa mãn \(P\le 1000\).
  • Các test từ \(6\) đến \(15\) không có ràng buộc bổ sung.

Dữ liệu vào

Dữ liệu vào được đọc từ tệp boards.in.

Dòng đầu tiên chứa hai số nguyên \(N\)\(P\), cách nhau bởi dấu cách.

Mỗi dòng trong \(P\) dòng tiếp theo chứa bốn số nguyên \(x_1\), \(y_1\), \(x_2\), \(y_2\), trong đó \(x_1\le x_2\)\(y_1\le y_2\).

Tất cả vị trí ván bật và vị trí đích đều phân biệt.

Dữ liệu ra

Ghi ra tệp boards.out một số nguyên là khoảng cách nhỏ nhất Bessie cần đi bộ để đến \((N,N)\).

Ví dụ

Ví dụ 1

Input
3 2
0 1 0 2
1 2 2 3
Output
3
Giải thích

Đường đi tốt nhất của Bessie là:

  • Bessie đi bộ từ \((0,0)\) đến \((0,1)\) (\(1\) đơn vị).
  • Bessie bật đến \((0,2)\).
  • Bessie đi bộ từ \((0,2)\) đến \((1,2)\) (\(1\) đơn vị).
  • Bessie bật đến \((2,3)\).
  • Bessie đi bộ từ \((2,3)\) đến \((3,3)\) (\(1\) đơn vị).

Tổng chiều dài đi bộ trên đường đi của Bessie là \(3\) đơn vị.

Nguồn

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: