Zad C
Wzorcówka
Wzorcówka do tego zadania była w Pascalu - tak to jest, jeśli używa się zadań wtórnie ;-)
A wyglądała tak:
program WyszukiwanieBinarne;
var tA,tN,i,n,m,p,q,r,key,rightmost,leftmost : LongInt;
A : array[1..1000002] of LongInt;
begin
Read(tA);
for tN:= 1 to tA do
begin
Read(n);
for i:=1 to n do
Read(A[i]);
Read(m);
for i:=1 to m do
begin
Read(key);
(* wystąpienie najbardziej z lewej *)
p:=1;
q:=n;
while p<q do
begin
r:=(p+q) div 2;
if A[r]<key then
p:=r+1
else
q:=r;
end;
leftmost:=p;
(* wystąpienie najbardziej z prawej *)
p:=1;
q:=n;
while p<q do
begin
r:=(p+q+1) div 2;
if A[r]>key then
q:=r-1
else
p:=r;
end;
rightmost:=p;
(* wypisujemy wynik *)
if A[leftmost]<>key then
WriteLn('0')
else
WriteLn(rightmost-leftmost+1);
end;
end;
end.
Śmieszny język, nie?
page revision: 0, last edited: 17 Feb 2008 18:07