Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- H. Юбилейные жетоны
- Ограничение времени 1 секунда
- Ограничение памяти 512Mb
- Ввод стандартный ввод или input.txt
- Вывод стандартный вывод или output.txt
- К юбилею метро во втором по величине городе Байтландии выпустили специальные юбилейные жетоны нескольких видов. Руководство метрополитена приняло решение продавать сувенирные комплекты, состоящие из двух жетонов разного вида.
- По заданному количеству жетонов каждого вида выясните, какое максимальное количество сувенирных комплектов можно собрать.
- Формат ввода
- Первая строка входа содержит одно целое число n ( 1≤n≤1000) — количество видов юбилейных жетонов. Каждая из последующих n строк содержит одно целое число ti (1≤ti≤109)— количество жетонов соответствующего вида.
- Формат вывода
- Выведите одно целое число — максимально возможное количество сувенирных комплектов, которые можно собрать из имеющихся жетонов.
- Пример 1
- Ввод Вывод
- 3
- 1
- 3
- 2
- 3
- Пример 2
- Ввод Вывод
- 5
- 2
- 2
- 1
- 12
- 3
- 8
- */
- #include <stdio.h>
- #include <stdlib.h>
- int compare(const void* a, const void* b)
- {
- const int arg1 = *(const int*)a;
- const int arg2 = *(const int*)b;
- if (arg1 < arg2) return -1;
- if (arg1 > arg2) return 1;
- return 0;
- }
- int main()
- {
- int n = 0;
- scanf("%d", &n);
- int* nums = (int*)malloc(n * sizeof(int));
- size_t sum = 0;
- for (int i = 0; i < n; i++)
- scanf("%d", &nums[i]), sum += nums[i];
- qsort(nums, n, sizeof(int), compare);
- if (sum - nums[n - 1] <= nums[n - 1])
- printf("%llu", sum - nums[n - 1]);
- else
- printf("%llu", sum / 2);
- free(nums);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment