Порядок ввода исходных данных:
T1 - первый адрес
...
Tn - n-ый адрес
Ввод оканчивается пустой строкой.
Порядок вывода результатов:
T, N - адрес, рейтинг
Ограничения:
Длина адреса <=30, количество адресов <= 2000, количество различных адресов <= 10.
type
Tz = record
Url: string[30];
Rate: real;
end;
Var
F: text;
Z: array[0..10] of Tz;
N, i: byte;
Begin
Assign(F,'input.txt');
Reset(F);
N:=0;
Z[0].Rate:=0;
While not EOF(F) do
Begin
Readln(F,Z[0].Url);
For i:=1 to N do
If Z[i].Url = Z[0].Url then
Begin
Z[i].Rate:=Z[i].Rate+1;
Break;
End;
If (N=0) or ((i=N) and (Z[i].Url<>Z[0].Url)) then
Begin
inc(N);
Z[N].Url:=Z[0].Url;
Z[N].Rate:=1;
End;
Z[0].Rate:=Z[0].Rate+1;
End;
Close(F);
Z[1].Rate:= (Z[1].Rate/Z[0].Rate)*100;
Z[0].Url:=' ';
For i:=2 to N do
Begin
Z[i].Rate:= (Z[i].Rate/Z[0].Rate)*100;
If Z[i].Rate>Z[i-1].Rate then Z[0].Url:=Z[0].Url+' ';
End;
Assign(F,'output.txt');
Rewrite(F);
N:=length(Z[0].Url);
Writeln(F,Z[N].Url,', ',Z[N].Rate:1:2,'%');
Close(F);
End.
Похожие записи/страницы:
- Конвертация пятибальной шкалы Pascal(Паскаль)
- Ввести массив записей, каждый из которых содержит сведения о фамилиях, адресе и номере телефона. Составить…
- Описать переменную "адрес", содержащую: название города, название улицы, номер дома, корпус, номер квартиры.…
- Составить программу, выводящую на экран "Телефонный справочник" (Ф. И. О., адрес, номер телефона). Произвести…
- Сформировать запись, имеющую следующую структуру type владелец=record фамилия:string; адрес:string; марка…
- Дано число N (> 0) и указатели P1 и P2 на начало и конец непустой очереди (двунаправленного/двусвязного списка).…
- Разработать базу данных «Абитуриенты» (фамилия, имя, адрес, оценки по трем экзаменам, средний балл). Вывести на…
- Сортировка связанного списка - Pascal(Паскаль)