diff options
| author | crupest <crupest@outlook.com> | 2021-03-30 00:07:40 +0800 | 
|---|---|---|
| committer | crupest <crupest@outlook.com> | 2021-03-30 00:07:40 +0800 | 
| commit | 60c5218232da519c67140f6d62b71e2bf5a54289 (patch) | |
| tree | 78e3cb4514ea9b91d615b8bcd518537f74c7c279 /works/solutions/acwing | |
| parent | c9b712a7b34697f79d0fe55d0cd22bded2efaec8 (diff) | |
| download | crupest-60c5218232da519c67140f6d62b71e2bf5a54289.tar.gz crupest-60c5218232da519c67140f6d62b71e2bf5a54289.tar.bz2 crupest-60c5218232da519c67140f6d62b71e2bf5a54289.zip | |
import(solutions): Add acwing 2068.
Diffstat (limited to 'works/solutions/acwing')
| -rw-r--r-- | works/solutions/acwing/2068.cpp | 57 | 
1 files changed, 57 insertions, 0 deletions
| 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 <algorithm>
 +#include <cmath>
 +#include <cstring>
 +#include <iostream>
 +
 +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;
 +}
 | 
