Области

Психология

Эзотерика

Технологии

Бизнес

Экономика

Бухгалтерия

Образование

Юриспруденция

Дом и быт

Красота

Медицина

Специалисты
из разных областей
Область: Психология
Рейтинг: 0 баллов
Область: Технологии
Рейтинг: 65 баллов
Область: Эзотерика
Рейтинг: 0 баллов
Область: Бухгалтерия
Рейтинг: 0 баллов
Область: Эзотерика
Рейтинг: 0 баллов
Область: Психология
Рейтинг: 50 баллов
Область: Красота
Напишите
Ваш вопрос здесь...
Образование.Информатика
Задача C++
6 мая 2018, 8:10
Спрашивает: Iiisergeyiii

Добрый день.
Уважаемые эксперты, у меня возникли сложности со следующей задачей.
Прошу вашей помощи.

Задача не проходит один из тестов проверяющей системы. Помогите, пожалуйста, найти возможную ошибку.

#include
#include
#include
#include
#include
#include

using namespace std;

bool comp(int a, int b) {
return -(a-b);
}

void write(vector a) {
for (int i = 0; i < a.size(); i++) {
cout << a[i] << " ";
}
}

int main()
{
long long n, m;
long long L = 0;
long long sum = 0;
long long k = 0;
vector used;
vector br;

cin >> n >> m;
for (long long i = 0; i < m; i++) {
long long t;
cin >> t;
br.push_back(t);
br.push_back(t);
sum += t*2;
}

sort(br.begin(), br.end(), greater());

if (n < sum) {
for (int j = 0; j < br.size(); j++) {
for (int i = j; i < br.size(); i++) {

if ( br[i] <= (n-L) ) {
used.push_back(br[i]);
L += br[i];
k++;
}
if (L == n) break;
}
if (L == n) {
break;
} else {
k = 0;
L = 0;
used.clear();
}
}


if (L == n) {
cout << k << endl;
write(used);
} else {
cout << 0;
}
} else if (n == sum) {
cout << m*2 << endl;
write(br);
} else {
cout << -1;
}



return 0;
}

ответы специалистов
7 мая 2018, 22:44
Здравствуйте! Переходите в чат на платную консультацию! Удачи