Автор | Сообщение |
|
Отправлено: 19.06.21 15:19. Заголовок: 2643 Можно ли оптимизировать?
Ответ получается правильный, но интересно если можно как-нибудь оптимизировать код. var n,x,count: integer; a: array of integer; begin assign(input,'\26-j1.txt'); readln(n); setlength(a,n); for var i:=0 to n-1 do begin readln(x); a[ i]:=x; end; Sort(a); for var i:=0 to n-1 do begin for var k:=i+1 to n-1 do begin if a[k]+a[ i] = 100 then begin count+=1; a[ i]:=0; a[k]:=0; end; end; end; print(count); end.
|
|
|
Ответов - 2
[только новые]
|
|
|
Отправлено: 19.06.21 17:38. Заголовок: Если я правильно пон..
Если я правильно понимаю ваш код (учитывая, что условия задачи нет), то вы ищите пары, сумма чисел в которых равна 100. Простейшей оптимизацией является бинарный поиск. Если вы берете некоторый элемент a[ i] < 100, то до 100 вам не хватает 100 - a[ i], осталось лишь двоичным поиском попытаться найти его в отсортированном массиве. Если такого элемента нет, то пройти дальше.
|
|
|
|
Отправлено: 19.06.21 18:53. Заголовок: Извиняюсь, что без у..
|
|
|
|