Поиск по этому блогу

понедельник, 23 октября 2017 г.

Словарь

(Время: 1 сек. Память: 16 Мб Сложность: 31%)
Дан некоторый набор букв и словарь. Ваша задача - подсчитать, сколько различных слов из словаря можно составить из этих букв.
Входные данные
В первой строке файла INPUT.TXT записано число N - количество слов в словаре (0 ≤ N ≤ 1000). В следующих N строках файла записано по одному слову из словаря. Слова содержат от 1 до 10 маленьких английских букв. Все слова в словаре различны. В последней строке файла записан набор букв (от 1 до 100 букв).
Выходные данные

Запишите в файл OUTPUT.TXT количество различных слов из словаря, которые можно составить из заданного набора букв.
Примеры

INPUT.TXT
OUTPUT.TXT
1
7
ant
bee
cat
dog
ewe
fly
gnu
bew
0
2
7
bee
fly
cat
dog
ant
ewe
gnu
tancugd
3


Решение:
var s,p:string; a:array[1..1000] of string[10];
i,j,n,c,o,d:integer;
f,f1:text;
begin
assign(f,'input.txt');
reset(f);
assign(f1,'output.txt');
rewrite(f1);
readln(f,n);
for i:=1 to n do
readln(f,a[i]);

readln(f,s); d:=0;
for i:=1 to n do
begin
o:=0;p:=s;
for j:=1 to length(a[i]) do
begin
c:=pos(a[i][j],p);
if c>0 then begin o:=o+1; delete(p,c,1); end;
end;

if o=length(a[i]) then d:=d+1;writeln;
end;
write(f1,d);
close(f1); close(f);
end.

Комментариев нет:

Отправить комментарий