Bảng số đối xứng

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

Xét một bảng số gồm \(m\) hàng \(n\) cột, các hàng được đánh số từ \(1\) đến \(m\) từ trên xuống, các cột được đánh số từ \(1\) đến \(n\) từ trái sang phải. Ô nằm giao giữa hàng \(i\) \((1\leq i\leq m)\), cột \(j\) \((1\leq j\leq n)\) được gọi là ô \((i,j)\) và chứa số nguyên không âm \(a_{ij}\). Bảng số được gọi là đối xứng nếu mỗi hàng, mỗi cột đều là một dãy số đối xứng. Một dãy số được gọi là đối xứng nếu đọc dãy từ đầu dãy đến cuối dãy cũng giống như đọc từ cuối dãy về đầu.

Cho bảng số, hãy tính số lượng ô ít nhất cần thay đổi giá trị để nhận được bảng số đối xứng.

Input

  • Dòng đầu là hai số nguyên \(m\)\(n\);
  • Tiếp theo là \(m\) dòng, mỗi dòng chứa \(n\) số nguyên không âm mô tả bảng số. Các số không vượt quá \(10^6\).

Output

  • Một số nguyên là số lượng ô ít nhất cần thay đổi giá trị để nhận được bảng số đối xứng.

Ràng buộc

  • \(50\%\) số test của bài có \(m=1; n\leq 1000\);
  • \(50\%\) số test còn lại của bài có \(m\leq 1000; n\leq 1000\).

Example

Test 1

Input
1 5
1 2 3 4 5
Output
2

Test 2

Input
3 3
3 2 1
2 2 2
1 4 5
Output
3

Bình luận

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

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