JUSBIE - Bài toán quân hậu

Xem dạng PDF

Gửi bài giải

Điểm: 3,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

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

Một em bé đang cố gắng giải bài toán 8 quân hậu kinh điển: đặt 8 quân hậu trên bàn cờ vua kích thước 8 x 8 ô vuông sao cho không có bất kì hai quân hậu nào nằm trên cùng một cột, hàng, hoặc đường chéo (nói cách khác, hai quân hậu ấy không thể “ăn” nhau). Em bé hiểu khái niệm hàng và cột rất rõ song đường chéo thì còn nhiều khúc mắc. Em đã thành công với việc đặt 8 quân hậu sao cho không có hai quân hậu nào nằm trên cùng hàng hoặc cột nhưng vẫn có khả năng một vài quân hậu đang nằm trên một đường chéo.

Sau khi em sắp xếp xong, em đã đưa kết quả này cho các bạn trẻ tham gia Free Contest 10, ngoài ra, BTC của cuộc thi còn cung cấp cho các thí sinh đáp án của bài toán quân hậu trên. Em bé nhờ các bạn rằng, từ bàn cờ mà em vừa sắp xếp, hãy thực hiện một số ít nhất các di chuyển các quân hậu để đưa về đáp án mà các bạn đã được cung cấp.

Biết rằng từ kết quả của em bé, có thể di chuyển các quân hậu để trở thành kết quả đúng. Giả sử trong một bước, một quân hậu có thể đi đúng 1 ô dọc theo hàng hoặc cột để đến một ô trống khác trong bàn cờ. Hãy giúp em bé, với trường hợp tổng quát cho bàn cờ kích thước N x N.

Tham khảo: Trích trong bộ đề thi ACM – ICPC Kanpur Site.

Input

  • Có nhiều test trong cùng một input
  • Mỗi test bắt đầu bằng số ~N~ (~3 < N < 17~). Tiếp đó là hai dòng, mỗi dòng có ~N~ số. Dòng thứ nhất của test gồm các số ~a_1, a_2, ... , a_n~ cho biết cách xếp quân hậu thứ ~i~ của em bé được đặt ở cột ~a_i~, hàng thứ ~i~. Tương tự như thế, dòng thứ hai của test gồm các số ~b_1, b_2, ... , b_n~ cho biết cách xếp quân hậu đúng mà bạn cần biến đổi bàn cờ ban đầu đến trạng thái đó.
  • Kết thúc của input là một số 0.

Output

Với mỗi test, in ra một dòng duy nhất đưa ra số bước di chuyển quân hậu. Các kết quả của các test nên được phân cách bởi dấu xuống dòng.

Sample

Input #1
4
1 2 3 4
3 1 4 2
4
3 2 4 1
3 1 4 2
5
5 3 1 4 2
5 3 1 4 2
5
1 5 2 4 3
3 1 4 2 5
0
Output #1
6
2
0
8

Problem source: Kc97ble - Free Contest


Bình luận

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



  • 3
    giabaoptnkctoanln  đã bình luận lúc 15, Tháng 8, 2023, 12:43

    Mình xin phép chia sẻ thuật của bài này ở link này ạ.


    • -1
      qhoangg  đã bình luận lúc 1, Tháng 11, 2023, 14:00

      nhờ b mà tui đã ac


      • 1
        Mechamaru  đã bình luận lúc 5, Tháng 12, 2023, 7:08

        wow toi kha la bat ngo day