Cho mảng A gồm m phần tử (các phần tử được đánh số từ 1 đến m) và mảng B gồm n phần tử (các phần tử được đánh số từ 1 đến n), mỗi phần tử của hai mảng chỉ nhận một trong ba giá trị -1,0,1. Tiến hành tạo bảng C kích thước m\times n, trong đó phần tử (i,j) nhận giá trị C[i][j]=A[i]\times B[j] với 1\le i\le m và 1\le j\le n.
Một bảng con vuông kích thước s của bảng C có phần tử trái trên là (x,y) và phần tử phải dưới là (x+s-1,y+s-1) với 1\le x\le m-s+1 và 1\le y\le n-s+1 được gọi là bảng con vuông “cân bằng” nếu:
- Các phần tử thuộc đường chéo chính đều nhận giá trị bằng 1. Cụ thể, các phần tử (x,y),(x+1,y+1),\dots,(x+s-1,y+s-1) có giá trị bằng 1.
- Tổng tất các các phần tử trong bảng con vuông bằng 0.
Yêu cầu: Cho hai mảng A và B, đếm số bảng con vuông “cân bằng” trong bảng C.
Input, Output và Subtasks
Input
Vào từ thiết bị vào chuẩn (bàn phím) có khuôn dạng:
- Dòng đầu chứa hai số nguyên dương m,n;
- Dòng thứ hai gồm m số mô tả mảng A;
- Dòng thứ ba gồm n số mô tả mảng B.
Output
Ghi ra thiết bị ra chuẩn (màn hình) một dòng chứa một số là số bảng con vuông “cân bằng” trong bảng C.
Scoring
- Subtask 1 (20 điểm): m,n\le 30
- Subtask 2 (30 điểm): m,n\le 300
- Subtask 3 (30 điểm): m,n\le 1000
- Subtask 4 (20 điểm): m\times n\le 5\times 10^6
Sample
Input
3 4
1 -1 1
1 0 -1 1
Output
1
Note
Chỉ có duy nhất 1 bảng con vuông “cân bằng” là bảng con kích thước 2 có phần tử trái trên là (2,3) (Hình vẽ)
Bình luận