Biến đổi - CTAB (PreVOI Phú Thọ)

Xem PDF



Tác giả:
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, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1600 (p) Thời gian: 2.0s Bộ nhớ: 1G Input: CTAB.INP Output: CTAB.OUT

Cho hai bảng số \(A\)\(B\) cùng kích thước \(n \times n\), các hàng được đánh số từ \(1\) đến \(n\) từ trên xuống dưới, các cột được đánh số từ \(1\) đến \(n\) từ trái sang phải. Mỗi phần tử của bảng chỉ nhận một trong hai loại giá trị \(1\) hoặc \(-1\). Xét hai loại phép biến đổi:

  1. Tác động vào hàng thứ \(i\) của bảng \(A\), tất cả các ô trên hàng chứa số \(1\) biến đổi thành \(-1\), các ô chứa số \(-1\) biến đổi thành \(1\);
  2. Tác động vào cột thứ \(j\) của bảng \(A\), tất cả các ô trên cột chứa số \(1\) biến đổi thành \(-1\), các ô chứa số \(-1\) biến đổi thành \(1\).

Yêu cầu: Hãy tìm cách biến đổi bảng \(A\) để nhận được bảng \(B\) với ít phép biến đổi nhất.

Input

  • Dữ liệu vào từ file văn bản CTAB.INP:
    • Dòng đầu chứa số nguyên \(n\);
    • \(n\) dòng sau, mỗi dòng chứa \(n\) số nguyên mô tả bảng \(A\).
    • \(n\) dòng sau, mỗi dòng chứa \(n\) số nguyên mô tả bảng \(B\).

Output

  • Ghi ra file văn bản CTAB.OUT một số nguyên duy nhất là số phép biến đổi ít nhất cần thực hiện, ghi \(-1\) nếu không tồn tại cách biến đổi.

Example

Test 1

Input
2
1 -1
-1 1
-1 -1
-1 -1
Output
2
Note

Biến đổi hàng 1, sau đó biến đổi cột 2.

Scoring

  • \(20\%\) số test ứng với \(20\%\) số điểm của bài thỏa mãn: \(n \leq 3\).
  • \(30\%\) số test khác ứng với \(30\%\) số điểm của bài thỏa mãn: \(n \leq 10\).
  • \(20\%\) số test khác ứng với \(20\%\) số điểm của bài thỏa mãn: \(n \leq 100\).
  • \(30\%\) số test còn lại ứng với \(30\%\) số điểm của bài thỏa mãn: \(n \leq 1000\).

Bình luận

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

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