Одной из , возникающей при разработке поисковых систем, является поиск самых популярных сайтов по ключевым словам (тегам), описывающим сайт. дан список сайтов. про каждый сайт известны набор тегов сайта и его популярность.
есть запрос в виде набора тегов. на запрос необходимо выдать самый популярный сайт, у которого в описании встречаются все теги из запроса. формат входного файла в первой строке входного файла input.txt находится набор тегов,
разделённых ровно одним пробелом, количество тегов не превосходит 5. тегом назовём такую строку, которая содержит только строчные латинские буквы и ее длина не превосходит 10 символов. в следующей строке дано число n (1 ≤ n ≤
20)— количество сайтов. каждый сайт описывается тремя строками. в первой строке название сайта. название сайта состоит только из строчных латинских букв и точки. длина названия сайта не превосходит 15 символов. во второй
строке набор тегов сайта, разделенных пробелами. количество тегов не превосходит 10. в третьей строке число ai(1 ≤ ai ≤ 1000000)— популярность сайта. формат выходного файла в выходной файл output.txt требуется вывести любой самый
популярный сайт, у которых встречаются все теги из запроса. гарантируется, что найдётся, хотя бы один сайт отвечающий запросу. пример входных и выходных данных input.txt football volleyball 5 sportbox.ru sport football volleyball basketball swimming hockey 5000 championat.com
sport football volleyball basketball hockey 4000 soccer.ru sport football 6000 sport.ru sport football vоlleyball 1000 sports.ru sport football volleyball basketball swimming hockey 2000 output.txt sportbox.ru я решила, на мои тесты работает. однако, когда я отправляю ее тестировать на сайт, вылезает что программа
выдала неправильный ответ. program project2; {$apptype console} uses sysutils; var s,r: string; tegs,sait,d,x1: array[1..255] of string; pop,l,x: array[1..100000] of integer; i,j,k,n,f,max,max1: integer; begin assign(input,'input.txt'); reset(input); assign(output,'output.txt'); rewrite(output); readln(s); s: =s+' '; f: =0; for i: = 1 to length(s) do begin if s[i]< > '
' then r: =r+s[i]; if s[i]=' ' then begin k: =k+1; d[k]: =r; r: =''; end; end; readln(n); for i: = 1 to n do begin readln(sait[i]); readln(tegs[i]); readln(pop[i]); end; for i: = 1 to n do begin for j: = 1 to k do begin if pos(d[j],tegs[i])< > 0 then f: =f+1; end; l[i]: =f; f: =0; end; max: =0; max1: =0; f: =0; for i: =1 to n do if l[i]> max then max: =l[i]; for i: =1 to n do if
l[i]=max then begin inc(f); x[f]: =pop[i]; x1[f]: =sait[i]; end; for i: =1 to f do if x[i]> max1 then begin max: =x[i]; k: =i; end; writeln(x1[k]); close(input); close(output); end.

danekhakker danekhakker    3   03.03.2019 16:30    8

Ответы
cnmcjmxy cnmcjmxy  24.05.2020 00:18

чтение из файла обычно пишется readln(f,s) где f имя файловой переменной так что скорей всего нужно вставить

readln(input,s);s:=s+' ';f:=0;
for i:= 1 to length(s) do begin
if s[i]<>' ' then r:=r+s[i];
if s[i]=' ' then begin k:=k+1;d[k]:=r;r:='';end;
end;
readln(input,n);
for i:= 1 to n do begin
readln(input,sait[i]);
readln(input,tegs[i]);
readln(input,pop[i]);

соответственно и запись в файл write(f,s)

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика