Поиск по этому блогу

воскресенье, 17 сентября 2017 г.

Быки и коровы

Время: 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.

1 комментарий: