A. Матрицы
ограничение по времени на тест1 секунда
ограничение по памяти на тест256 мегабайт
вводстандартный ввод
выводстандартный вывод
Вам дана матрица размера N×M, состоящая из целых положительных чисел, а также целое число K. Назовем подматрицу хорошей, если она является квадратом и сумма этой подматрицы не больше K. Посчитайте количество хороших подматриц.
Подматрицей называется такая матрица, которую можно получить из исходной, если удалить из нее несколько(возможно ноль) столбцов с левого и правого края, а также несколько(возможно ноль) строк с верхнего и нижнего края. При этом подматрица не должна быть пустой.
Входные данные
В первой строке заданы 3 целых числа N, M, K — размеры матрицы. (1≤N,M≤1500, 0≤K≤109)
В следующих N строках содержится по M целых положительных чисел — содержимое матрицы (числа по значению от 1 до 1000).
Выходные данные
Выведите одно число — количество подходящих подматриц.
Система оценки
Данная задача содержит 6 подзадач, в которых выполняются следующие ограничения:
Тесты из условия. Оценивается в 0 баллов.
N,M≤2. Оценивается в 15 баллов.
N,M≤100. Оценивается в 17 баллов.
N,M≤500. Оценивается в 24 балла.
N,M≤1500 и матрица состоит только из единичек. Оценивается в 15 баллов.
Исходные ограничения. Оценивается в 29 баллов.
входные данные
3 3 12
1 2 3
5 2 5
3 2 4
Выходные данные
12
входные данные
6 6 30
4 4 4 1 1 1
2 5 5 3 2 3
3 2 2 4 1 3
1 1 4 4 4 5
1 3 3 4 5 5
2 5 5 4 3 4
выходные данные
71
#include <bits/stdc++.h>
#define no cout << «NO» << endl
#define yes cout << «YES» << endl
#define fast ios_base::sync_with_stdio(0);cin.tie(NULL);cout.tie(NULL)
typedef long long ll;
const int MAXN = 2e5 + 5;
const ll mod = 1e9 + 7;
using namespace std;
int n, m, k;
int cnt = 0, v, b[MAXN], ans = 0, sum;
int main() {
fast;
cout << «im retarded»;
}
from random import random
M = 3
N = 3
a = []
w = 0
for i in range(N):
b = []
for j in range(M):
b.append(int(random()*11))
print(«%3d» % b[j], end=»)
w = w + sum(b)
a.append(b)
print(‘ |’, sum(b))
for i in range(M):
print(» —«, end=»)
print()
for i in range(M):
s = 0
for j in range(N):
s += a[j][i]
print(«%3d» % s, end=»)
print()
print(‘Выходные данные: ‘, w)