USACO 2020 - Swapity Swapity Swap

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: 1500 (p) Thời gian: 4.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

\(N\) con bò của Farmer John (\(1\le N\le 10^5\)) đang đứng thành một hàng. Với mỗi \(1\le i\le N\), con bò thứ \(i\) tính từ bên trái mang nhãn \(i\).

Farmer John đã nghĩ ra một bài tập thể dục buổi sáng mới cho đàn bò. Ông đưa cho đàn bò \(M\) cặp số nguyên \((L_1,R_1),\ldots,(L_M,R_M)\), trong đó \(1\leq M\leq 100\). Sau đó, ông yêu cầu chúng lặp lại chính xác \(K\) lần (\(1\le K\le 10^9\)) quy trình gồm \(M\) bước sau:

  • Với mỗi \(i\) từ \(1\) đến \(M\):
    • Dãy bò hiện đang ở các vị trí \(L_i\ldots R_i\) tính từ bên trái đảo ngược thứ tự.

Sau khi đàn bò đã lặp lại quy trình này đúng \(K\) lần, với mỗi \(1\le i\le N\), hãy in nhãn của con bò thứ \(i\) tính từ bên trái.

Phân nhóm

  • Test 2 thỏa mãn \(N=K=100\).
  • Các test 3-5 thỏa mãn \(K\le 10^3\).
  • Các test 6-10 không có ràng buộc bổ sung.

Dữ liệu vào

Dòng đầu tiên chứa \(N\), \(M\)\(K\). Với mỗi \(1\le i\le M\), dòng thứ \(i+1\) chứa \(L_i\)\(R_i\), là hai số nguyên thuộc đoạn \(1\ldots N\) và thỏa mãn \(L_i<R_i\).

Dữ liệu ra

Trên dòng thứ \(i\) của kết quả, in phần tử thứ \(i\) của mảng sau khi dãy chỉ dẫn đã được thực hiện \(K\) lần.

Ví dụ

Ví dụ 1

Input
7 2 2
2 5
3 7
Output
1
2
4
3
5
7
6
Giải thích

Ban đầu, thứ tự các con bò từ trái sang phải là \([1,2,3,4,5,6,7]\). Sau bước đầu tiên của quy trình, thứ tự là \([1,5,4,3,2,6,7]\). Sau bước thứ hai của quy trình, thứ tự là \([1,5,7,6,2,3,4]\). Lặp lại cả hai bước lần thứ hai sẽ thu được kết quả của ví dụ.

Nguồn

USACO 2020 February Contest, Silver - Swapity Swapity Swap: https://usaco.org/index.php?page=viewproblem2&cpid=1014

Tác giả: Brian Dean.

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: