fork download
  1. #include <stdio.h>
  2. #include <limits.h>
  3.  
  4. int main() {
  5. int N;
  6. scanf("%d", &N);
  7.  
  8. // Инициализация переменных для двух максимальных и двух минимальных чисел
  9. int max1 = INT_MIN, max2 = INT_MIN;
  10. int min1 = INT_MAX, min2 = INT_MAX;
  11.  
  12. for (int i = 0; i < N; i++) {
  13. int num;
  14. scanf("%d", &num);
  15.  
  16. // Обновление двух максимальных чисел
  17. if (num > max1) {
  18. max2 = max1;
  19. max1 = num;
  20. } else if (num > max2) {
  21. max2 = num;
  22. }
  23.  
  24. // Обновление двух минимальных чисел
  25. if (num < min1) {
  26. min2 = min1;
  27. min1 = num;
  28. } else if (num < min2) {
  29. min2 = num;
  30. }
  31. }
  32.  
  33. // Вычисление произведений
  34. long long productMax = (long long)max1 * max2; // Произведение двух максимальных
  35. long long productMin = (long long)min1 * min2; // Произведение двух минимальных
  36.  
  37. // Определение, какое произведение больше
  38. if (productMax > productMin) {
  39. // Если максимальное произведение больше, выводим max1 и max2
  40. printf("%d %d\n", (max1 < max2) ? max1 : max2, (max1 > max2) ? max1 : max2);
  41. } else if (productMax < productMin) {
  42. // Если минимальное произведение больше, выводим min1 и min2
  43. printf("%d %d\n", (min1 < min2) ? min1 : min2, (min1 > min2) ? min1 : min2);
  44. } else {
  45. // Если произведения равны, выбираем пару с меньшей суммой
  46. int sumMax = max1 + max2;
  47. int sumMin = min1 + min2;
  48. if (sumMax < sumMin) {
  49. printf("%d %d\n", (max1 < max2) ? max1 : max2, (max1 > max2) ? max1 : max2);
  50. } else {
  51. printf("%d %d\n", (min1 < min2) ? min1 : min2, (min1 > min2) ? min1 : min2);
  52. }
  53. }
  54.  
  55. return 0;
  56. }
Success #stdin #stdout 0s 5276KB
stdin
Standard input is empty
stdout
-2147483648 -2147483648