Автор | Сообщение |
|
Отправлено: 26.03.21 15:45. Заголовок: Задача 3768 (А. Кабанов)
Добрый день! Никак не могу понять, почему не сходятся ответы. У меня: 50298 10138060 Правильный: 49867 10002885 Условие: В текстовом файле записан набор натуральных чисел. Гарантируется, что все числа различны. Рассматриваются пары чисел из набора, между которыми в отсортированном массиве помещаются не более 100 чисел из того же набора. Определите количество пар с суммой кратной 10, а также наименьшее среднее арифметическое таких пар. Входные данные представлены в файле 26-52.txt следующим образом. Первая строка содержит целое число N – общее количество чисел в наборе. Каждая из следующих N строк содержит одно число, не превышающее 109. В ответе запишите два целых числа: сначала количество пар, затем наименьшее среднее арифметическое. Пример входного файла: 8 3 8 14 11 2 16 5 9 В примере рассмотрим пары, между которыми помещаются не более 3 чисел из набора. В данном случае есть три подходящие пары: 2 и 8, 9 и 11, 14 и 16. В ответе надо записать числа 3 и 5. Мой код на Python: f = open("26.txt") n = int(f.readline()) m = [int(f.readline()) for _ in range(n)] m.sort() counter = 0 min_pair = 1000000001 for i in range(n - 1): for j in range(i + 1, min(i + 102, n)): if (m[ i] + m[j]) % 10 == 0: counter += 1 if ((m[ i] + m[j]) // 2) < min_pair: min_pair = (m[ i] + m[j]) // 2 print(counter, min_pair)
|
|
|
Ответов - 6
[только новые]
|
|
|
Отправлено: 27.03.21 08:59. Заголовок: Не соглашусь с вашим..
Не соглашусь с вашим циклом, пишите проще. Исхожу из соображения что расстояние между числами меньше количества чисел на единицу. for i in range(n - 1): for j in range(i + 1, n): if (j-i)<=101 and ...
|
|
|
|
Отправлено: 28.03.21 17:20. Заголовок: Спасибо за подсказку..
Спасибо за подсказку. У меня посчитало правильно количество пар, только когда сделал if (j - i) <= 101 and (m[ i] + m[j]) % 10 == 0
|
|
|
|
Отправлено: 29.03.21 16:10. Заголовок: И вы сделали абсолют..
И вы сделали абсолютно верно!
|
|
|
|
Отправлено: 13.06.21 20:14. Заголовок: К сожалению,не понял в чем ошибка...
Добрый день, получается такой же ответ, как и у krerep Возможно,я не так понял условие,поэтому хочу понять ошибку в моей логике Вот мой код,он правда на Java,но там все достаточно понятно import java.io.File; import java.io.FileNotFoundException; import java.util.Arrays; import java.util.Scanner; public class _3768 { public static void main(String[] args) throws FileNotFoundException { File f = new File("C:\\Users\\maks\\Desktop\\ЕГЭ\\_3770.txt"); Scanner in = new Scanner(f); int n = in.nextInt(); int [] mas = new int [n]; for(int i = 0; i < n ; i++){ mas[ i] = in.nextInt(); } Arrays.sort(mas); for(int i = 0; i < n ;i++){ System.out.print(mas[ i] + " "); } System.out.println(); int count = 0; int minAvg = Integer.MAX_VALUE; for(int i = 0 ; i < n ;i++){ int k = i - 101; if(k < 0){ k = 0; } for(int j = k;j < i;j++){ if((mas[ i] + mas[j]) % 10 ==0){ count++; if(((mas[ i] + mas[j]) / 2) < minAvg){ minAvg = (mas[ i] + mas[j])/2; } } } } System.out.println(count + " " + minAvg); } }
|
|
|
|
Отправлено: 13.06.22 14:43. Заголовок: можно ли решить эту ..
можно ли решить эту задачу на экзеле?Если да то можно как?
|
|
|
|
Отправлено: 24.06.22 14:10. Заголовок: Проверьте что файл с..
Проверьте что файл соответствует задаче, вашим кодо получаю верный ответ.
|
|
|
|