Заполнение диагоналями ограничение по времени на тест1 секунда
ограничение по памяти на тест256 мегабайт
вводстандартный ввод
выводстандартный вывод
Заполните прямоугольную таблицу из N строк и M столбцов по диагонали числами от 1 до N·M (смотрите примеры для лучшего понимания).
Входные данные
В единственной строке через пробел заданы два целых числа N и M — количество строк и столбцов таблицы, соответственно (1 ≤ N, M ≤ 10).
Выходные данные
Выведите N строк по M чисел — требуемое заполнение таблицы.
Примеры
входные данные
3 3
выходные данные
1 2 4
3 5 7
6 8 9
входные данные
5 7
выходные данные
1 2 4 7 11 16 21
3 5 8 12 17 22 26
6 9 13 18 23 27 30
10 14 19 24 28 31 33
15 20 25 29 32 34 35
#include <iostream>
#include <cmath>
signed main()
{
setlocale(LC_ALL, "Rus");
int cnt, countBoys = 0, countGirls = 0, sumHeightBoys = 0, sumHeightGirls = 0;
std::cout << "Введите количество детей в классе: ";
std::cin >> cnt;
int* height = new int[cnt];
for (int i = 0; i < cnt; i++)
{
std::cout << "Рост ребёнка №" << i + 1 << ": ";
std::cin >> height[i];
if (height[i] < 0) {
countBoys++;
sumHeightBoys += height[i];
}
else {
countGirls++;
sumHeightGirls += height[i];
}
}
std::cout << "Средний рост мальчиков: " << abs(sumHeightBoys) / countBoys << std::endl;
std::cout << "Средний рост девочек: " << sumHeightGirls / countGirls << std::endl;
return 0;
}
Вот код на питоне:
N = int(input())
objects = []
for i in range(N):
objects.append(list(map(int, input().split(
rezult = []
summ = 0
price = 0
while summ <= 40:
Max = 0
index = -1
for i in objects:
if i[1] > Max and i[0] + summ <= 40 and not objects.index(i) in rezult:
Max = i[1]
index = objects.index(i)
if index == -1:
break
rezult.append(index)
summ += objects[index][0]
price += objects[index][1]
for i in rezult:
print(i + 1)
print(summ, price)
Объяснение:
При необходимости могу пояснить построчно.