Автор | Сообщение |
|
Отправлено: 23.06.20 23:07. Заголовок: Задача 27 № 134
Все приведенные решения на 4 балла дают неверный ответ, например, для 6 чисел: 3, 5, 7, 12, 13, 200. Ответ NO, хотя правильный ответ - пара 3, 13. Для числа 200 переменная max13 будет еще равна нулю, а сумма - самая большая. Для чисел, не кратных 13, при вычислении суммы нужна дополнительная проверка max13 != 0
|
|
|
Новых ответов нет
[см. все]
|
|
|
Отправлено: 24.06.20 07:13. Заголовок: В самом деле. Решени..
В самом деле. Решение поправил, изменения выделил жирным шрифтом. #include <iostream> using namespace std; int main() { const int k = 13; int n; int a[5]; int maxl = 0; int maxlk = 0; int l = 0; int r = 0; cin >> n; for (int i = 0; i < 4; i++) cin >> a[ i ]; for (int i = 0; i < n - 4; i++) { if (a[0] % k == 0 && a[0] > maxlk) maxlk = a[0]; if (a[0] % k != 0 && a[0] > maxl) maxl = a[0]; cin >> a[4]; if (a[4] % k == 0) { if (maxlk != 0 && a[4] + maxlk > l + r) { l = maxlk; r = a[4]; } if (maxl != 0 && a[4] + maxl > l + r) { l = maxl; r = a[4]; } } else { if (maxlk != 0 && a[4] + maxlk > l + r) { l = maxlk; r = a[4]; } } a[0] = a[1]; a[1] = a[2]; a[2] = a[3]; a[3] = a[4]; } if (l > 0 && r > 0) cout << l << " " << r << endl; else cout << "NO" << endl; return 0; }
|
|
|
|
Отправлено: 24.06.20 10:43. Заголовок: Спасибо!
Спасибо!
|
|
|
|