Одной из задач, возникающей при разработке поисковых систем, является поиск самых популярных сайтов по ключевым словам (тегам), описывающим сайт. Дан список сайтов. Про каждый сайт известны набор тегов сайта и его популярность. Есть запрос в виде набора тегов. На запрос необходимо выдать самый популярный сайт, у которого в описании встречаются все теги из запроса.Формат входного файлаВ первой строке входного файла input.txt находится набор тегов, разделённых ровно одним пробелом, количество тегов не превосходит 5. Тегом назовём такую строку, которая содержит только строчные латинские буквы и ее длина не превосходит 10 символов. В следующей строке дано число N (1 ≤ N ≤ 20)— количество сайтов.Каждый сайт описывается тремя строками. В первой строке название сайта. Название сайта состоит только из строчных латинских букв и точки. Длина названия сайта не превосходит 15 символов. Во второй строке набор тегов сайта, разделенных пробелами. Количество тегов не превосходит 10. В третьей строке число Ai(1 ≤ Ai ≤ 1000000)— популярность сайта.Формат выходного файлаВ выходной файл output.txt требуется вывести любой самый популярный сайт, у которых встречаются все теги из запроса. Гарантируется, что найдётся, хотя бы один сайт отвечающий запросу.Пример входных и выходных данных
Input.txt football volleyball5sportbox.rusport football volleyball basketball swimming hockey5000championat.comsport football volleyball basketball hockey4000soccer.rusport football6000sport.rusport football vоlleyball1000sports.rusport football volleyball basketball swimming hockey2000
Output.txt
sportbox.ru
Я задачу решила, на мои тесты работает.
Однако, когда я отправляю ее тестировать на сайт, вылезает что программа выдала неправильный ответ.
program Project2;{$APPTYPE CONSOLE}uses SysUtils;vars,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;beginassign(input,'Input.txt');reset(input);assign(output,'Output.txt');rewrite(output);readln(s);s:=s+' ';f:=0;for i:= 1 to length(s) do beginif 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 beginreadln(sait[i]);readln(tegs[i]);readln(pop[i]);end;for i:= 1 to n do beginfor j:= 1 to k do beginif 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 doif l[i]>max then max:=l[i];for i:=1 to n doif l[i]=max then begin inc(f);x[f]:=pop[i];x1[f]:=sait[i];end;for i:=1 to f doif x[i]>max1 then begin max:=x[i];k:=i;end;writeln(x1[k]);close(input);close(output);end.
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.