Submission #1282171

#TimeUsernameProblemLanguageResultExecution timeMemory
1282171kawhietSpiderman (COCI20_spiderman)C++20
56 / 70
478 ms10216 KiB
#include <bits/stdc++.h>
using namespace std;

constexpr int N = 1e6 + 1;

int cnt[N];

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int n, k;
    cin >> n >> k;
    vector<int> h(n);
    for (int i = 0; i < n; i++) {
        cin >> h[i];
        cnt[h[i]]++;
    }
    int greater = 0;
    for (int i = 0; i < n; i++) {
        greater += h[i] > k;
    }
    vector<int> res(N);
    for (int i = 0; i < n; i++) {
        if (h[i] <= k) {
            res[i] = (h[i] == k ? greater : 0);
            continue;
        }
        int x = h[i] - k;
        set<int> s;
        for (int f = 1; f * f <= x; f++) {
            if (x % f == 0) {
                s.insert(f);
                s.insert(x / f);
            }
        }
        for (auto f : s) {
            if (h[i] % f == k) {
                res[i] += cnt[f];
            }
        }
    }
    for (int i = 0; i < n; i++) {
        cout << res[i] << ' ';
    }
    cout << '\n';
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...