Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program Main;
- {$APPTYPE CONSOLE}
- uses
- SysUtils;
- type
- time = record
- u: integer;
- ch: char;
- end;
- const
- MAXIN = 100000;
- var
- s: array [1..MAXIN] of string;
- all: array [1..MAXIN] of time;
- minlong, min, i, n, m, u: integer;
- function sum(s: string; p :integer): integer;
- var
- p1, i, pr: integer;
- begin
- p1 := p;
- pr := 0;
- while (length(s) > 0) do
- begin
- p := p1;
- for i := 1 to m do
- if (all[i].ch = s[1]) then
- p := all[i].u;
- inc(pr, p);
- delete(s, 1, 1);
- end;
- sum := pr;
- end;
- function find(s: string):integer;
- var
- i, k: integer;
- begin
- k := 0;
- for i := 1 to length(s) do
- if (pos(s[i], s) = i) then inc(k);
- find := k;
- end;
- begin
- readln(n);
- for i := 1 to n do
- readln(s[i]);
- readln(m, u);
- for i := 1 to m do
- readln(all[i].ch, all[i].u);
- for i := 1 to n do
- if ((i = 1) or ((find(s[i]) = minlong) and (sum(s[i], u) < min))
- or (find(s[i]) < minlong)) then
- begin
- min := sum(s[i], u);
- minlong := find(s[i]);
- end;
- writeln(min);
- readln;
- readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment