题解:本题思路是用快排将所有图书编码排序,再将需求码转成字符串在编码中找最短(因为这个没了80分)符合条件的编码
var
a,b,c:array[0..1000]of longint;
n,q,i,j,len:longint;
procedure kp(l,r:longint);//快排
var
i,j,mid:longint;
begin
if l>=r then exit;
i:=l;j:=r;
mid:=a[l+random(r-l+1)];
repeat
while a[i]<mid do inc(i);
while a[j]>mid do dec(j);
if i<=j then
begin
a[0]:=a[i];a[i]:=a[j];a[j]:=a[0];
inc(i);dec(j);
end;
until i>j;
kp(l,j);
kp(i,r);
end;
procedure try(x,y:longint);
var
i:longint;
s,ss:string;
begin
for i:=1 to n do
begin
str(a[i],s);//将图书编码变成字符串
len:=length(s);
delete(s,1,len-x);//只要后缀
str(y,ss);//将需求码变成字符串
if s=ss then
begin
writeln(a[i]);//相同就输出
exit;
end;
end;
writeln(-1);//不同就-1
end;
begin
read(n,q);
for i:=1 to n do readln(a[i]);
kp(1,n);
for i:=1 to q do
begin
readln(b[i],c[i]);
try(b[i],c[i]);
end;
end.