kirya_shkolnik

27. Задание №13584 (Без пар)

Jun 24th, 2020
271
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.87 KB | None | 0 0
  1. //Дан набор из N целых положительных чисел. Необходимо выбрать из набора произвольное количество чисел так, чтобы их сумма была
  2. //как можно больше и при этом не делилась на 8.
  3. //В ответе нужно указать количество выбранных чисел и их сумму, сами числа выводить не надо.
  4. //Если получить нужную сумму невозможно, считается, что выбрано 0 чисел и их сумма равна 0.
  5. //https://inf-ege.sdamgia.ru/problem?id=13584
  6.  
  7. #include <iostream>
  8.  
  9. using namespace std;
  10.  
  11. int main(){
  12.     const int d=8;
  13.     int temp, N;
  14.         count=0,// количество выбранных чисел
  15.         sum, // сумма
  16.         min=10001; // минимальное число не кратное d=8;
  17.     cin >> N;
  18.     for(int i=0; i<N; ++i){ // суммируем все элементы с поиском минималки
  19.         cin >> temp;
  20.         sum += temp;
  21.         if(temp%d != 0 and temp < min) min = temp; // минимальное число не кратное d;
  22.     }
  23.     if(sum % d == 0) count = N; // все элементы не кратные 8
  24.     else{ // сумма кратна 8
  25.         if(min != 10001){// есть элементы не кратные 8
  26.             sum -= min; // вычитаем один элемент не кратный 8
  27.                         //(из суммы кратной 8 вычесть число не кратное 8 => сумма не кратна 8)
  28.             count = N-1 // кол-во элементов уменьшается на один
  29.         }
  30.         else { // все элементы были кратны 8
  31.             sum = 0; // закрываем шарманку
  32.             count = 0;  // закрываем шарманку
  33.         }
  34.     }
  35.     cout << count << " " << sum;
  36. }
Add Comment
Please, Sign In to add comment