
Gratius
5 год назад
ТОЛЬКО С++В игру быки и коровы играют два игрока.Первый игрок загадывает последовательность из 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.txt5 104 3 8 9 78 3 5 2 4output.txt1 2input.txt3 31 2 33 1 2output.txt0 3input.txt3 31 2 31 2 3output.txt3 0
ОТВЕТЫ

Тодорка
Oct 24, 2020
#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;
}
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;
}
561
Смежные вопросы: