На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

Для регистрации на форуме щелкните по ссылке «Вход-регистрация» вверху страницы. В открывшееся окошко «ник» введите свою фамилию на русском языке (например, Иванов). В окошко «пароль» введите придуманный вами пароль, состоящий из латинских букв и цифр. Поставьте галочку в окошке «зарегистрироваться, я новый участник» и нажмите кнопку «ОК».

АвторСообщение



Не зарегистрирован
ссылка на сообщение  Отправлено: 16.06.21 01:30. Заголовок: Задание 27 №4193


Моя программа по идее заменяет либо минимально четное или минимальную разницу между нечетными. Но в Б ответ не сходится. Есть какой то другой способ замены или просто ошибка в программе?
 
#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;
}


Спасибо: 0 
Цитата Ответить
Ответов - 2 [только новые]


Администратор




Сообщение: 2865
ссылка на сообщение  Отправлено: 16.06.21 08:42. Заголовок: Это задача 67 из осн..


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

___________________________________________________
Имей мужество пользоваться собственным умом. (И. Кант)
Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 23
ссылка на сообщение  Отправлено: 20.06.21 17:18. Заголовок: Aleksey2003 пишет: ..


Aleksey2003 пишет:

 цитата:
Есть какой то другой способ замены или просто ошибка в программе?



посмотрите мое решение, оно другое, перебором http://egekp.unoforum.pro/?1-16-0-00000255-000-0-0-1624197602
click here

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 319
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет