Advertisement
kirya_shkolnik

27. Задание #T9808

Jun 23rd, 2020
305
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.13 KB | None | 0 0
  1. //Среди пар, удовлетворяющих условию(первый элемент пары больше второго), необходимо найти и напечатать пару с максимальной суммой
  2. //элементов, которая делится на 120
  3. //Если среди найденных пар максимальную сумму имеют несколько, то можно напечатать любую из них.
  4.  
  5.  
  6. #include <iostream>
  7.  
  8. using namespace std;
  9.  
  10. int main(){
  11.     const int m = 120;
  12.     int temp,N,count=0, a[m] = {0}, maxsum, max1, max2, med1=0, med2=0;
  13.     cin >> N;
  14.     for(int i=0 ; i<N; ++i){
  15.         cin >> temp;
  16.         if(temp%m == m / 2){
  17.             if(temp > med1) med1 = temp;
  18.             else if(temp> med2) med2 = temp; // медианы ( в массиве вместо них будут нули )
  19.         }
  20.         else if(a[temp%m] < temp)
  21.         a[temp%m] = temp; // основная запись в массив
  22.     }
  23.     if(med1 != 0 and med2 !=0){ // медианные значения не записывал в массив
  24.     maxsum = med1+med2; max1=med1; max2=med2;}
  25.     for(int i=0; i<m; ++i){
  26.         temp = a[i] + a[m-i];
  27.         if(temp > maxsum) { maxsum = temp; max1 = a[i]; max2=a[m-i];}
  28.     }
  29.     if(max1 < max2){ // если второй элемент больше первого, свапаем
  30.         temp = max1;
  31.         max1 = max2;
  32.         max2 = temp;
  33.     }
  34.     cout << max1 << " " << max2;
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement