Предмет: Информатика, автор: naruto007700

ТОЛЬКО С++
В игру быки и коровы играют два игрока.

Первый игрок загадывает последовательность из n различных цветов. Всего различных цветов существуют m. Цвета пронумерованы целыми числами от 1 до m. Таким образом загаданную последовательность можно представить в виде массива a из n элементов: a0, a1,..., an-1.

Второй игрок пытается угадать массив a. Для этого он сообщает первому игроку своё предположение: массив b. В ответ на предположение первый игрок сообщает второму количество быков и коров в его предположении. Быком называется такое i, что ai = bi. Коровой называется такое i, что ai ≠ bi, но существует такое j, что ai = bj.

Ваша задача: по заданным массивам a и b вычислить количество быков и коров.


Входные данные
В первой строке задано два целых числа: n, m (1 ≤ n ≤ 5000, 1 ≤ m ≤ 105) — количество элементов в массиве и количество различных цветов.

В следующей строке задано n целых чисел через пробел: a0, a1,..., an-1 (1 ≤ ai ≤ m) — элементы массива a.

В следующей строке задано n целых чисел через пробел: b0, b1,..., bn-1 (1 ≤ bi ≤ m) — элементы массива b.


Выходные данные
Выведите два целых числа через пробел: количество быков и коров.


Пример(ы)
input.txt
5 10
4 3 8 9 7
8 3 5 2 4
output.txt
1 2

input.txt
3 3
1 2 3
3 1 2
output.txt
0 3

input.txt
3 3
1 2 3
1 2 3
output.txt
3 0

Ответы

Автор ответа: danulpopov
0
#include <bits/stdc++.h>

using namespace std;

#define f0(i,n) for (int i = 0; i < (n); ++i)

int main()
{
    int n, m;
    cin >> n >> m;
    vector<int> a(n);
    f0(i, n)
        cin >> a[i];
    vector<int> b(n);
    f0(i, n)
        cin >> b[i];
    int bi = 0;int cow = 0;
    f0(i, n)
        if (a[i] == b[i])bi++;
        else
            f0(j,n)
            if (a[i] == b[j])cow++;
    cout << bi << ' ' << cow;
}


Похожие вопросы
Предмет: География, автор: ryzanmark