Выведите одно целое число — координату точки, в которой лучше всего построить школу - VB
Формулировка задачи:
В деревне Интернетовка все дома расположены вдоль одной улицы по одну сторону от нее. По другую сторону от этой улицы пока ничего нет, но скоро все будет – школы, магазины, кинотеатры и т.д.
Для начала в этой деревне решили построить школу. Место для строительства школы решили выбрать так, чтобы суммарное расстояние, которое проезжают ученики от своих домов до школы, было минимально.
План деревни можно представить в виде прямой, в некоторых целочисленных точках которой находятся дома учеников. Школу также разрешается строить только в целочисленной точке этой прямой (в том числе разрешается строить школу в точке, где расположен один из домов – ведь школа будет расположена с другой стороны улицы).
Напишите программу, которая по известным координатам домов учеников поможет определить координаты места строительства школы.
Входные данные
Сначала вводится число N — количество учеников (1 ≤ N ≤ 100000). Далее идут в строго возрастающем порядке координаты домов учеников — целые числа, не превосходящие 2∙109 по модулю.
Выходные данные
Выведите одно целое число — координату точки, в которой лучше всего построить школу. Если ответов несколько, выведите любой из них.
ПРИМЕР
Z_3.in
4
'количество учеников' 1 2 3 4 'координаты домов учеников'3
-1 0 1 Z_3.out 2 0Пожалуйста напишите программу с комментариями.
Решение задачи: «Выведите одно целое число — координату точки, в которой лучше всего построить школу»
textual
Листинг программы
Private Sub Command1_Click() Dim n As Long 'количество учеников Dim Coord, s As String 'координаты домов учеников' Open "c:\111\Z_3.in" For Input As #1 Open "c:\111\Z_3.out" For Output As #2 Do While Not EOF(1) Line Input #1, s: n = CInt(Trim(s)) Line Input #1, s: Coord = Split(Trim(s)) Write #2, vasy(Coord) Loop Close #1 Close #2 End Sub Private Function vasy(ByRef C) As String Dim i As Long, n As Long, sum As Long n = UBound(C) 'Здесь должно быть вычисление координаты точки, в которой лучше всего построить школу 'Алгоритм предлагаю продумать самому, а пока функция возвращает округленное среднее арифметическое адресов For i = 0 To n sum = sum + C(i) Next i vasy = CStr(sum \ (n + 1)) End Function
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д