Время: 1 сек. Память: 16 Мб Сложность: 26%)
Петя и Вася часто играют в различные логические игры.
Недавно Петя поведал Васе о новой игре «Быки и коровы» и теперь они играют в
эту игру сутками. Суть игры очень проста: Петя загадывает четырехзначное число,
состоящее из различных цифр. Вася отгадывает задуманное Петей число, перебирая
возможные варианты. Каждый раз Вася предлагает вариант своего числа, а Петя
делает Васе подсказку: сообщает количество быков и коров, после чего Вася с
учетом подсказки продолжает отгадывание числа до тех пор, пока не отгадает.
Быки – это количество цифр в предложенном Васей числе, совпадающих по значению
и стоящих в правильной позиции в задуманном Петей числе. Коровы – количество
цифр, совпадающих по значению, но находящихся в неверной позиции. Например,
если Петя задумал число 5671, а Вася предложил вариант 7251, то число быков
равно 1 (только цифра 1 на своем месте), а число коров равно 2 (только цифры 7
и 5 не на своих местах). Петя силен в математике, но даже он может ошибаться.
Помогите Пете написать программу, которая бы по загаданному Петей и
предложенному Васей числам сообщала количество быков и коров.
Входные данные
В единственной строке входного файла INPUT.TXT записано два
четырехзначных натуральных числа A и B через пробел, где А – загаданное Петей
число, а В – предложенный Васей вариант.
Выходные данные
В выходной файл OUTPUT.TXT нужно вывести два целых числа
через пробел — количество быков и коров.
Примеры
№
|
INPUT.TXT
|
OUTPUT.TXT
|
1
|
5671 7251
|
1 2
|
2
|
1234 1234
|
4 0
|
3
|
2034 6234
|
2 1
|
var i,b,k,p:integer;
s,a,c:string;
f,f1:text;
begin
assign(f,'input.txt');
reset(f);
readln(f,s);
close(f);
i:=pos(' ',s);
a:=copy(s,1,i-1);
delete(s,1,i);
c:=s;
b:=0; k:=0;
for i:=1 to 4 do
begin
p:=pos(a[i],c);
if p<>0 then
if p=i then b:=b+1 else k:=k+1;
end;
assign(f1,'output.txt');
rewrite(f1);
write(f1,b,' ',k); close(f1);
end.
спасмбо тебе!
ОтветитьУдалить