Олимпиадные задачи по программированию. Ч. 2. Лучшие решения. Ускова О.Ф - 16 стр.

UptoLike

for y:=1 to n do doc[x,y]:=false;
exist:=false;
put(doc,1,exist);
print(doc)
end.
Задача 4. "Кролики"
Задача предлагалась на областной олимпиаде школьников в 2000 году
и на факультетской олимпиаде в 2001 году.
Поступила партия из 2n кроликов k пород. Кроликов рассадить в n
двухместных клеток так, чтобы получилось как можно больше
однопородных брачных пар, а разнопородных брачных пар не было. Автор
решения один из победителей олимпиады, студент 3 курса ф-та ПММ ВГУ
Алексей Владимирович Чулюков.
var fkr:text;
s1:word;
procedure input;{Ввод кроликов}
var krol:string[2];n:longint;
begin
assign(fkr,'input.txt');
rewrite(fkr);
writeln('Введите данные типа mk или fk, k=0..9 - номер породы;
Enter - конец');
n:=1;
repeat
write('Кролик ',n,':> ');
readln(krol);
writeln(fkr,krol);
inc(n)
until krol='';
close(fkr)
end;
procedure married(var s:word);{Рассадка кроликов}
var mkr:array['0'..'9'] of longint;krol:string[2];i:char;
begin
assign(fkr,'input.txt');
reset(fkr);
s:=0;
for i:='0' to '9' do
mkr[i]:=0;
while not eof(fkr) do
begin
readln(fkr,krol);
case krol[1] of
'm':
begin
if mkr[krol[2]]<0 then
begin
inc(s);
inc(mkr[krol[2]])
end
else inc(mkr[krol[2]])
end;
'f':
begin
if mkr[krol[2]]>0 then
begin
inc(s);