begin
l[b[q]]:
=i;
dec(q);
end;
inc(q);b[q]:
=i;
end;
fori:
=1tondo
begin
temp:
=(r[i]-l[i]-1)*a[i];
iftemp>ansthenans:
=temp;
end;
writeln(ans);
end.
输入20
12883040321922123230451519375562635输出144
输入56
3000200018019028902900312045056050030021002300480840880890350550450760960860250260105011301140214020452065307531553255347034903240920930900930980890740760770825845855950198088068069023802390
输出21080
FarmerJohn给谷仓安装了一个新的安全系统,并且要给牛群中的每一个奶牛分配一个有效的密码。
一个有效的密码由L(3<=L<=15)个小写字母(来自传统的拉丁字母集'a'...'z')组成,至少有一个元音('a','e','i','o',或'u')和两个辅音(除去元音以外的音节),并且是按字母表顺序出现的(例如,'abc'是有效的,而'bac'不是)。
给定一个期望长度L和C个小写字母,写一个程序,打印出所有的长度为L、能由这给定的C个字母组成的有效密码。
密码必须按字母表顺序打印出来,一行一个。
你的程序只需输出前25,000个有效密码,即使后面还存在有效密码。
【输入】
第一行:
两个由空格分开的整数,L和C;
第二行:
C个空格分开的小写字母,密码是由这个字母集中的字母来构建的。
【输出】
第一至?
行:
每一个输出行包括一个长度为L个字符的密码(没有空格)。
输出
行必须按照字母顺序排列。
如果存在多于25,000个有效密码,你的程序必须在输出25,000个有效密码后停止。
【样例输入输出】
passwd.in
passwd.out
46
atcisw
acis
acit
aciw
acst
acsw
actw
aist
aisw
aitw
astw
cist
cisw
citw
istw
解法:
纯碎的深搜吧............也就只有元音辅音的多少是要注意的了..........
var
a:
array[0..28]ofchar;
l,c,i,j,k:
longint;
y:
setofchar;
ch:
char;
proceduredfs(i,t:
longint;s:
string);
var
yy,fy,j,j1:
longint;
begin
ifk=25000thenexit;
ift=lthenbegin
yy:
=0;
fy:
=0;
forj1:
=1toldobegin
ifs[j1]inytheninc(yy)
elseinc(fy);
end;
if(yy<1)or(fy<2)thenexit;
inc(k);
writeln(s);
exit;
end;
forj:
=i+1toc-l+(t+1)dodfs(j,t+1,s+a[j]);
end;
begin
assign(input,'passwd.in');
assign(output,'passwd.out');
reset(input);
rewrite(output);
readln(l,c);
fori:
=1toc-1doread(a[i],ch);
read(a[c]);
y:
=['a','e','i','o','u'];
fori:
=1toc-1dobegin
forj:
=i+1tocdobegin
ifa[i]>a[j]thenbegin
a[0]:
=a[i];
a[i]:
=a[j];
a[j]:
=a[0];
end;
end;
end;
fori:
=1toc-l+1dobegin
dfs(i,1,a[i]);
end;
close(input);
close(output);
end.
输入68
aycistwz
输出acistw
acisty
acistz
aciswy
aciswz
acisyz
acitwy
acitwz
acityz
aciwyz
acstwy
acstwz
acstyz
acswyz
actwyz
aistwy
aistwz
aistyz
aiswyz
aitwyz
astwyz
cistwy
cistwz
cistyz
ciswyz
citwyz
istwyz
输入710
aycistwzbf
输出abcfist
abcfisw
abcfisy
abcfisz
abcfitw
abcfity
abcfitz
abcfiwy
abcfiwz
abcfiyz
abcfstw
abcfsty
abcfstz
abcfswy
abcfswz
abcfsyz
abcftwy
abcftwz
abcftyz
abcfwyz
abcistw
abcisty
abcistz
abciswy
abciswz
abcisyz
abcitwy
abcitwz
abcityz
abciwyz
abcstwy
abcstwz
abcstyz
abcswyz
abctwyz
abfistw
abfisty
abfistz
abfiswy
abfiswz
abfisyz
abfitwy
abfitwz
abfityz
abfiwyz
abfstwy
abfstwz
abfstyz
abfswyz
abftwyz
abistwy
abistwz
abistyz
abiswyz
abitwyz
abstwyz
acfistw
acfisty
acfistz
acfiswy
acfiswz
acfisyz
acfitwy
acfitwz
acfityz
acfiwyz
acfstwy
acfstwz
acfstyz
acfswyz
acftwyz
acistwy
acistwz
acistyz
aciswyz
acitwyz
acstwyz
afistwy
afistwz
afistyz
afiswyz
afitwyz
afstwyz
aistwyz
bcfistw
bcfisty
bcfistz
bcfiswy
bcfiswz
bcfisyz
bcfitwy
bcfitwz
bcfityz
bcfiwyz
bcistwy
bcistwz
bcistyz
bciswyz
bcitwyz
bfistwy
bfistwz
bfistyz
bfiswyz
bfitwyz
bistwyz
cfistwy
cfistwz
cfistyz
cfiswyz
cfitwyz
cistwyz
fistwyz