p1342.dpr
来自「高手写的所有acm例程 在acm.zju.edu.cn 上的题目的例程」· DPR 代码 · 共 64 行
DPR
64 行
program p1342;
{$APPTYPE CONSOLE}
const
max=83681;
var
dic :array[1..max]of string[5];
s :string;
FUNCTION check(left,right:longint):longint;
var
mid :Longint;
begin
if dic[right]=s then check:=right else
begin
mid:=(left+right) div 2;
if dic[mid]<s then check:=check(mid,right)
else check:=check(left,mid);
end;
end;
FUNCTION find:longint;
var
i :integer;
begin
for I:=2 to length(s) do if s[i]<=s[i-1] then
begin
find:=0;
exit;
end;
for i:=1 to 5-length(s) do s:='`'+s;
find:=check(1,max);
end;
PROCEDURE makedic;
var
i :longint;
j :integer;
c :integer;
begin
dic[1]:='````a';
for i:=2 to max do
begin
j:=5;
dic[i]:=dic[i-1];
while dic[i][j]='z' do dec(j);
while ord('z')-ord(dic[i][j])<=5-j do dec(j);
dic[i][j]:=chr(ord(dic[i][j])+1);
for c:=j+1 to 5 do
dic[i][c]:=chr(ord(dic[i][c-1])+1);
end;
end;
begin
makedic;
while not eof do
begin
readln(s);
writeln(find);
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?