№27 егэ по информатикеимеется набор данных, состоящий из 6 пар положительных целых чисел. необходимо выбрать из каждой пары ровно одно число так, чтобы сумма всех выбранных чисел не делилась на 3 и при этом была максимально возможной. если получить требуемую сумму невозможно, в качестве ответа нужно выдать 0.входные данныена вход программе подаётся шесть строк, каждая из которых содержит два натуральных числа, не превышающих 10 000.пример входных данных: 1 35 126 95 43 31 1пример выходных данных: 32вопрос: что не правильно в моей проге? ?
pizza = {1: ["Пепперони", 3], 2: ["Четыре сыра", 5], 3: ["Кальцоне", 8], 4: ["Чокнутый макаронник", 10], 5: ["Адриано Челентано", 12]}
drink = {1: ["Пиво пенное", 2], 2: ["Кола", 1], 3: ["Кумыс", 4]}
a = "-"
print("Меню жратвы:")
for i in pizza:
print(f"{i}{pizza[i][0]}{a*(25-len(pizza[i][0]))}{pizza[i][1]} $.")
print("Меню выпивки:")
for i in drink:
print(f"{i}{drink[i][0]}{a*(25-len(drink[i][0]))}{drink[i][1]} $.")
p1 = int(input("Какую пиццу желаете? "))
p2 = int(input("В каком количестве? "))
d1 = int(input("Что будем пить? "))
d2 = int(input("Сколько налить? "))
res_food = pizza[p1][1]*p2
res_drink = drink[d1][1]*d2
dis1 = 0
dis2 = 0
dis3 = 0
if p2>=5:
res_food=(p2-(p2//5))*pizza[p1][1]
dis1 = p2//5*pizza[p1][1]
if d2>3 and drink[d1][1]>2:
res_drink=drink[d1][1]*d2*0.85
dis2 = drink[d1][1]*d2*0.15
res = res_food+res_drink
if res>50:
res*=0.8
dis3 = (res_food+res_drink)*0.2
print(f"\n\nК оплате:\n{pizza[p1][0]} {p2} шт. {res_food}$ (Скидка = {dis1})\n{drink[d1][0]} {d2} шт. {res_drink}$ (Скидка = {dis2})\nИтого: {res}$ (Итоговая скидка = {dis1+dis2+dis3})")
Объяснение:
// Считал, что под N -- 85 подразумевается N=85, то есть создаем два массива размером 85x85
// Индексы элемента i,j выводятся так: arr[i][j]
// Не использовал динамическую память, так как это не было сказано в задании
#include <iostream>
#include <cstdlib> // rand(), srand()
#include <ctime> // time()
int main()
{
/*
* Можно протестировать на простых примерах:
*
* const int n = 3;
* int arr1[n][n]{ { 1, 2, 3 }, { 55, 89, 11 }, { 99, 0, 89 } };
* int arr2[n][n]{ { 3, 3, 1 }, { 66, 89, 55 }, { 77, 0, -5 } };
*/
const int n = 85;
int arr1[n][n]{};
int arr2[n][n]{};
srand(time(0));
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
arr1[i][j] = rand() % 100 + 1;
arr2[i][j] = rand() % 100 + 1;
}
}
int row;
std::cout << "Enter row (0-" << n - 1 << "): ";
std::cin >> row;
if (row < 0 || row >= n) {
std::cout << "incorrect row\n";
return 0;
}
int min1 = arr1[row][0];
int min2 = arr2[row][0];
int index1 = 0;
int index2 = 0;
for (int i = 1; i < n; ++i) {
if (arr1[row][i] < min1) {
index1 = i;
min1 = arr1[row][i];
}
if (arr2[row][i] < min2) {
index2 = i;
min2 = arr2[row][i];
}
}
std::cout << "min1 = arr1[" << row << "][" << index1 << "] = " << min1 << '\n';
std::cout << "min2 = arr2[" << row << "][" << index2 << "] = " << min2 << '\n';
// Вывод строки массива для наглядности
std::cout << "\narr1[" << row << "]: ";
for (int i = 0; i < n; ++i)
std::cout << arr1[row][i] << " ";
std::cout << "\narr2[" << row << "]: ";
for (int i = 0; i < n; ++i)
std::cout << arr2[row][i] << " ";
}