From 60c5218232da519c67140f6d62b71e2bf5a54289 Mon Sep 17 00:00:00 2001 From: crupest Date: Tue, 30 Mar 2021 00:07:40 +0800 Subject: import(solutions): Add acwing 2068. --- works/solutions/acwing/2068.cpp | 57 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 works/solutions/acwing/2068.cpp (limited to 'works') diff --git a/works/solutions/acwing/2068.cpp b/works/solutions/acwing/2068.cpp new file mode 100644 index 0000000..592f43f --- /dev/null +++ b/works/solutions/acwing/2068.cpp @@ -0,0 +1,57 @@ +#include +#include +#include +#include + +int n, K; +int A[100010]; +int c[11][100010]; +long long result; + +int CalcDigitCount(int n) { + int c = 0; + while (n != 0) { + c++; + n /= 10; + } + return c; +} + +void work() { + for (int i = 0; i < n; i++) { + result += c[CalcDigitCount(A[i])][(K - A[i] % K) % K]; + // Wrong Code I don't know why! + // int a = A[i]; + // for (int j = 1; j < 11; j++) { + // a *= 10; + // a %= K; + // c[j][a]++; + // } + for (int j = 0, power = 1; j < 11; j++) { + c[j][power * 1ll * A[i] % K]++; + power = power * 10 % K; + } + } +} + +int main() { + std::ios_base::sync_with_stdio(false); + std::cin.tie(nullptr); + + std::cin >> n >> K; + + for (int i = 0; i < n; i++) { + std::cin >> A[i]; + } + + work(); + + std::reverse(A, A + n); + std::memset(c, 0, sizeof c); + + work(); + + std::cout << result; + + return 0; +} -- cgit v1.2.3