✎ Задать свой вопрос   *более 30 000 пользователей получили ответ на «Решим всё»

Задача 893 На вход программе подаются сведения о

УСЛОВИЕ:

На вход программе подаются сведения о номерах школ учащихся, участвовавших в олимпиаде. В первой строке сообщается количество учащихся N, каждая из следующих N строк имеет формат:

<Фамилия> <Инициалы> <номер школы>

где <Фамилия> – строка, состоящая не более чем из 20 символов, <Инициалы> – строка, состоящая из 4-х символов (буква, точка, буква, точка), <номер школы> – не более чем двузначный номер. <Фамилия> и <Инициалы>, а также <Инициалы> и <номер школы> разделены одним пробелом. Пример входной строки:

Иванов П.С. 57

Требуется написать как можно более эффективную программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет выводить на экран информацию, из какой школы было меньше всего участников (таких школ может быть несколько). При этом необходимо вывести информацию только по школам, пославшим хотя бы одного участника. Следует учитывать, что N>=1000.

РЕШЕНИЕ:

const LIM = 99;
var C:array[1..LIM] of integer;
i, p, N, k, r, Min: integer;
s:string;
begin
for k:=1 to 99 do C[k]:=0;
readln(N);
for i:=1 to N do begin
readln(s); { читаем очередную строку }
{ выделяем часть после второго пробела }
p := Pos(' ', s);
Delete(s, 1, p+5);
{ определяем номер школы k }
Val(s, k, r);
C[k] := C[k] + 1; { увеличиваем счетчик k-ой школы }
end;
Min := N;
for k:=1 to LIM do
if (C[k] <> 0) and (C[k]<Min) then Min := C[k];
for k:=1 to LIM do
if C[k] = Min then writeln(k);
end.

Вопрос к решению?
Нашли ошибку?

ОТВЕТ:

в решение

Добавил slava191, просмотры: ☺ 3575 ⌚ 10.04.2014. информатика 10-11 класс

Решения пользователелей

Хочешь предложить свое решение? Войди и сделай это!
Увы, но свой вариант решения никто не написал... Будь первым!

Написать комментарий

Последние решения
F = μ mg*sin(1) но это сходу, не уверен [удалить]
✎ к задаче 37476
Разделим на х
y`-(1/x)*y=lnx/(x^2)

Линейное, первого порядка

Решают методом вариации произвольной постоянной или методом Бернулли.

В любом случае приходится решить два уравнения с разделяющимися переменными.

Метод Бернулли.
Решение y представлено в виде произведения двух [b]произвольных [/b]функций.

y=u*v
y`=u`*v+u*v`

Подставляем в уравнение:

u`*v+u*v`-(1/x)*u*v=lnx/(x^2)

u`*v+u*(v`-(1/x)*v)=lnx/(x^2)


Функцию v=v(x) выбирают так, чтобы

[b]v`-(1/x)*v=0[/b]

тогда

[b]u`*v-u*0=lnx/(x^2)[/b]


Решаем первое уравнение с разделяющимися переменными:
v`-(1/x)*v=0

dv/v=dx/x

ln|v|=ln|x|

[b]v=x[/b]

Решаем первое уравнение с разделяющимися переменными:

u`*x=lnx/(x^2)

u`=lnx/(x^3)

u= ∫ lnxdx/(x^3)=-lnx/(-2x^2)+(1/2) ∫ dx/x^3=

=-lnx/(-2x^2)-(1/(4x^2))+C

cчитали по частям

u=lnx; du=dx/x

dv=dx/x^3
v=-1/(2x^2)

Общее решение: y=(-lnx/(-2x^2)-(1/(4x^2))+C)*х можно раскрыть скобки.

Так как
y(1)=0
найдем частное решение:

0=-ln1/(-2)-(1/4)+C
C=1/4

y=(-lnx/(-2x^2)-(1/(4x^2))+(1/4))*х- частное решение
[удалить]
✎ к задаче 37478
Преобразования линейные - значит постоянный множитель можно выносить за знак преобразования

(T_(2) o T_(1))(v)=T_(2) (T_(1)v)=T_(2) (7v-7u)=7T_(2)v-7T_(2)u=

=-7*(4v+5u)-7*(6v+2u)=-28v-35u-42v-14u= [b]-49u-70v [/b]

(T_(2) o T_(1))(u)=T_(2) (T_(1)u)=T_(2) (-7v-6u)=-7T_(2)v-6T_(2)u=

=-7*(4v+5u)-6*(6v+2u)=-28v-35u-36v-12u= [b]-64v-47u [/b]
[удалить]
✎ к задаче 37470
Находим абсциссы точек пересечения графиков
3x^2+1=3x+7
3x^2–3x–6=0
x^2–x–2=0
D=9
x_(1)=–1; x_(2)=2

V=π ∫ ^(2)_(-1) ((3x+7)^2-(3x^2+1)^2)dx=

=π ∫ ^(2)_(-1) (9x^2+42x+49-9x^4-6x^2-1)dx=

=π ∫ ^(2)_(-1) (3x^2+42x+48-9x^4)dx=

=π*(x^3+21x^2+48x-(9x^5/5))|^(2)_(-1)=

=π*(2^3-(-1)^3+21*(4-1)+48(2-(-1))-(9/5)*(32-(-1)))=

=π*(9+63+144-(297/5))= [b]π*(183/5)[/b]
(прикреплено изображение) [удалить]
✎ к задаче 37473
Находим абсциссы точек пересечения графиков
3x^2+1=3x+7
3x^2-3x-6=0
x^2-x-2=0
D=9
x_(1)=-1; x_(2)=2

S= ∫^(2)_(-1) (3x+7-(3x^2+1))dx= ∫^(2)_(-1) (3x+6-3x^2)dx=

=((3x^2/2)+6x-(3x^3/3))|^(2)_(-1)=

=(3/2)*(4-1)+6*(2-(-1))-(2^3-(-1)^3)=

=(9/2)+18-9= [b]13,5[/b]
(прикреплено изображение) [удалить]
✎ к задаче 37475