题目背景
墨家机关城即将被攻陷,墨家家主无意间发现了一道逃生密道,但这道密道需要密码,机智的你决定参与密码的破译。
题目描述
密码门上有两行数字序列,数字均为非负整数,根据门上的古语,你需要求出满足以下关系的所有等式的数量。
(ai−bj)%7=0(a_i-b_j)\%7=0(ai−bj)%7=0
其中a为第一行数字序列,b为第二行数字序列,i代表第一行数字序列中的第i个,j代表第二行数字序列中的第j个。
输入格式
第一行两个整数n和m,代表第一行数字序列有n个数,第二行数字数列有m个数。
第二行输入n个数字。
第三行输入m个数字。
输出格式
一个整数,代表等式的数量。
输入输出样例
输入
4 8
3 3 0 2
2 1 4 1 7 7 7 6
输出
4
说明/提示
对于75%,n,m<=10000;
对于100%,n,m<=100000.
代码如下:
#include <iostream>
using namespace std;
const int N = 10;
int cnta[N], cntb[N];int main() {int n, m;cin >> n >> m;for (int i = 0; i < n; i++) {int x;cin >> x;cnta[x % 7]++;}for (int i = 0; i < m; i++) {int x;cin >> x;cntb[x % 7]++;}int sum = 0;for (int i = 0; i < 7; i++) {sum += cnta[i] * cntb[i];}cout << sum << endl;return 0;
}