View Code of Problem 3920

#include<iostream>
#include<algorithm>
#include<vector>
#include<iomanip>
using namespace std;
bool dif(vector<int> arr, int i) {
	for (int j = 1; j < arr.size(); j++)
		if (arr[j] == i)return 0;
	return 1;
}
int main() {
	vector<int> num(10);
	vector<vector<int>> arr(10);
	for (int i = 1; i <= 9; i++) {
		arr[i].push_back(0);
		for (int j = 1; dif(arr[i], (i*j)%10); j++) {
			arr[i].push_back((i*j) % 10);
			arr[i][0] += (i*j) % 10;
			num[i]++;
		}
	}
	int T; cin >> T;
	while (T--) {
		long long n, m; cin >> n >> m;
		long long sum;
		if (m % 10 == 0) sum = 0;
		else {
			sum = n / m / num[m % 10] * arr[m % 10][0];
			for (int i = 1; i <= n / m % num[m % 10]; i++)
				sum += arr[m % 10][i];
		}
		cout << sum << endl;
	}
}

Double click to view unformatted code.


Back to problem 3920