Форум » Обработка числовых последовательностей » Задание 27 №4193 » Ответить

Задание 27 №4193

Aleksey2003: Моя программа по идее заменяет либо минимально четное или минимальную разницу между нечетными. Но в Б ответ не сходится. Есть какой то другой способ замены или просто ошибка в программе? [pre2] #include <iostream> #include<vector> #include<algorithm> #include<cmath> #include<fstream> #include<string> using namespace std; int main() { ifstream F("27-67b.txt"); int n, S = 0, min_chet = 10001, min_d=10001; F >> n; for (int i = 0; i < n; i++) { int k; F >> k; int s = 0; vector<int> vec(k); int min_not_chet = 10001; for (int j = 0; j < k; j++) { F >> vec[ j]; s = s + vec[ j]; if (vec[ j] % 2 != 0) min_not_chet = min(min_not_chet, vec[ j]); else if (vec[ j]%5!=0) min_chet = min(min_chet, vec[ j]); } sort(vec.begin(), vec.end()); if (s % 2 != 0) { s = s - min_not_chet; for (int j = 0; j < vec.size(); j++) { if (vec[ j] != min_not_chet and vec[ j] % 2 != 0 and (vec[ j] - min_not_chet)%5!=0) { min_d = min(min_d, (vec[ j] - min_not_chet)); break; } } } S = S + s; } int minim = min(min_chet, min_d); cout << S <<" "<< min_d<<" "<<S-minim; } [/pre2]

Ответов - 2

Поляков: Это задача 67 из основного сборника. Посмотрите авторское решение на сайте. Думаю, что вы не учли, что оптимальная коррекция может быть выполнена за счёт удаления двух нечётных чисел из одной группы.

глебарзамас: Aleksey2003 пишет: Есть какой то другой способ замены или просто ошибка в программе? посмотрите мое решение, оно другое, перебором http://egekp.unoforum.pro/?1-16-0-00000255-000-0-0-1624197602 click here



полная версия страницы