|
|
back to board(C++)Есть способ получше ? Posted by Ludmila 23 Jul 2017 03:19 Я решала эту задачу с использованием массивов Сначала переменной N даётся значение которое определяет количетво камней. Потм N раз ожидается w или вес каждого камня. W-s кладутся в первый массив (или первая куча камней) Потом во второй массив кладётся последний элемент из первого , и из первого он же вычитается. Есть две переменные M1 , которая равняется сумме элементов первого массива и M2 которая всегда равняется сумме элементов второго . Идет проверка , если ещё не было числа меньше чем разность между измененными массивом1 и массивом2 , или если это первый раз , если эти условия верны , то переменная BestScore куда сохраняется самая меньшая разность из всех перечиссленных , становится равной новой разности.Потом берется следующий последний элемент из первого массива , прибавляется ко вторму , вычитается из первого , и так N раз . В конце выводится на экран самамая минимальная разность между двумя кучами которая была найденна. Вроде бы план правильный,но почемуто разности не выводятся на экран ,а что то другое наверное то место в памяти где они находятся вот код от задачи про камни #include <iostream> using namespace std; int main() { int N; int w; int best_score; int join1[w]; int M1; int join2[w]; int M2; int inc_index; cin>>N; if((N>=1)&(N<=20)) { for( inc_index=1;inc_index<=N;++inc_index) //inc index { cin>>w; if((w<=100000)&(w>=1)) { join1[inc_index]=w; M1=M1+join1[inc_index]; } else { cout<<"muito pesada!"<<endl; } } inc_index=0; for(int dec_index=N;dec_index>=0;--dec_index)//dec index { inc_index=inc_index+1; join2[inc_index]=join1[dec_index]; M2=M2+join1[dec_index]; if((M1-M2<best_score)||(M1-M2>best_score&dec_index==N)) { best_score=M1-M2; } } cout<<best_score<<endl; } else { cout<<"muitas pedras"<<endl; } return 0; } Re: (C++)Есть способ получше ? Этот алгоритм не находит правильный ответ. Таким образом, более хороший способ есть. Это такой способ, который использует корректный алгоритм. Почему вы решили, что переменная best_score хранит адрес в памяти? |
|
|