Имя входного файла: стандартный ввод
имя выходного файла: стандартный вывод
ограничение по времени: 2 секунды
ограничение по памяти: 256 мегабайт
— все шутите?
— давно бросил. врачи запрещают.
— с каких это пор вы стали ходить по
врачам?
— сразу после смерти.
из сценария фильма «тот самый
мюнхгаузен»
барон мюнхгаузен в том самом фильме решил «превратиться» в садовника мюллера. каждый
день он занимался поливом цветов в своём саду. в саду проложены тропинки, и эти тропинки соединяются между собой. можно считать, что тропинки являются рёбрами связного неориентированного графа,а их точки соединения — вершинами. кратные рёбра и петли в этом графе отсутствуют.
тропинки имеют разную длину, в терминах графа длина тропинки — это вес ребра.
поскольку жизнь барона после ухода в садовники стала довольно скучна и однообразна, он
иногда придумывает себе довольно странные развлечения.
путь барона по саду всегда начинается в вершине 1. он выбирает некоторое число k — количество
тропинок по которым он хочет пройти, а затем отыскивает путь минимальной длины, исходящий
из вершины 1 и состоящий из такого количества тропинок. ваша — определить минимально
возможную длину такого пути.
поскольку авторы настаивали на обязательном присутствии её формальной постановки, её ниже
дан связный неориентированный взвешенный граф из n вершин и m рёбер без кратных рёбер и
петель.
дано q запросов. каждый запрос — целое число ki
, нужно найти минимально возможный суммарный вес пути, начинающегося в вершине 1 и состоящего из ki рёбер (вершины и рёбра в пути
могут повторяться).
формат входных данных
в первой строке содержатся целые числа n и m (2 6 n 6 1500, 1 6 m 6 15000) — количество
вершин и количество рёбер графа.
во второй строке содержится m целых чисел from1, from2, . . , fromm, fromi — первый конец
ребра #i.
в третьей строке содержится m целых чисел to1, to2, . . , tom, toi — второй конец ребра #i.
в четвёртой строке содержится m целых чисел w1, w2, . . , wm, wi —вес ребра #i.
ограничения на эти данные: 1 6 fromi
, toi 6 n, fromi 6= toi
, 1 6 wi 6 5 · 108
.
в пятой строке содержится целое число q (1 6 q 6 5 · 105
) — количество запросов.
в шестой строке содержится q целых чисел k1, k2, . . , kq, (0 6 ki 6 109
, k1 < k2 < . . < kq).
формат выходных данных
выведите q целых чисел через пробел — ответы на запросы. каждый ответ — минимально
возможный суммарный вес пути из вершины 1, содержащего ровно ki рёбер (возможны повторения
вершин и рёбер в пути).
function preobr(s:string):string;var i,j,p,n,sered:integer; gl,zp,slovo:string; m:array [1..80] of string;beginzp:='!?*,.'; gl:='аоуыэяеёюи'; p:=pos(' ',s); i:=0; repeat inc(i); slovo:=copy(s,1,p-1); m[i]:=slovo; delete(s,1,p); p:=pos(' ',s); until p=0; n:=i+1; m[n]:=s; for i:=1 to n do begin s:=m[i]; if pos(s[length(s)],zp)<>0 then p:=length(s)-1 else p:=length(s); sered:=(p div 2)+1; if (not odd(p)) or (p<3) then continue; if pos(s[1],gl)=0 then continue; if pos(s[sered],gl)=0 then continue; if pos(s[p],gl)=0 then continue; s[1]:=UpCase(s[1]); s[sered]:=UpCase(s[sered]); s[p]:=UpCase(s[p]); m[i]:=s+'('+s[1]+','+s[sered]+','+s[p]+')'; end; s:=''; for i:=1 to n do s:=s+m[i]+' '; preobr:=s;end;
beginassign(f,'input.txt'); reset(f);assign(t,'output.txt'); rewrite(t); while not eof(f) do begin readln(f,s); writeln(t, preobr(s) ); end; writeln('Файл успешно записан...'); close(f);close(t);readln;end.