На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

Для регистрации на форуме щелкните по ссылке «Вход-регистрация» вверху страницы. В открывшееся окошко «ник» введите свою фамилию на русском языке (например, Иванов). В окошко «пароль» введите придуманный вами пароль, состоящий из латинских букв и цифр. Поставьте галочку в окошке «зарегистрироваться, я новый участник» и нажмите кнопку «ОК».

АвторСообщение



Не зарегистрирован
ссылка на сообщение  Отправлено: 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)


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 4 [только новые]







Сообщение: 413
ссылка на сообщение  Отправлено: 27.03.21 08:59. Заголовок: Не соглашусь с вашим..


Не соглашусь с вашим циклом, пишите проще. Исхожу из соображения что расстояние между числами меньше количества чисел на единицу.
 for i in range(n - 1):  
for j in range(i + 1, n):
if (j-i)<=101 and ...


Discussio mater veritas est Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 1
ссылка на сообщение  Отправлено: 28.03.21 17:20. Заголовок: Спасибо за подсказку..


Спасибо за подсказку. У меня посчитало правильно количество пар, только когда сделал
if (j - i) <= 101 and (m[ i] + m[j]) % 10 == 0


Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 414
ссылка на сообщение  Отправлено: 29.03.21 16:10. Заголовок: И вы сделали абсолют..


И вы сделали абсолютно верно!

Discussio mater veritas est Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
ссылка на сообщение  Отправлено: 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);
}
}


Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 89
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет