Submission #1337842

#TimeUsernameProblemLanguageResultExecution timeMemory
1337842mantaggezSpiderman (COCI20_spiderman)C++20
56 / 70
1040 ms200392 KiB
#include <bits/stdc++.h>

using namespace std;
using ll = long long;

const ll nx = 3e5+5;
const ll LIM = 1e6;

ll n, k;
ll h[nx], cnt[LIM + 5];
vector<ll> mod[LIM + 5];

void sieve()
{
    for(ll i=k+1;i<=LIM;i++) {
        for(ll j=k;j<=LIM;j+=i) {
            mod[j].push_back({i});
        }
    }
}

int main()
{
    cin.tie(NULL)->sync_with_stdio(false);
    cin >> n >> k;
    for(ll i=1;i<=n;i++) cin >> h[i];
    for(ll i=1;i<=n;i++) cnt[h[i]]++;
    sieve();
    for(ll i=1;i<=n;i++) {
        ll sum = 0;
        // cout << h[i] << " : ";
        for(auto& m : mod[h[i]]) {
            // cout << m << ' ';
            sum += cnt[m];
        }
        // cout << '\n' << "sum : ";
        cout << sum << ' ';
        // cout << '\n';
    }

    // for(ll i=1;i<=LIM;i++) {
    //     cout << "i : " << i << '\t';
    //     for(auto it : mod[i]) {
    //         cout << it << ' ';
    //     }
    //     cout << '\n';
    // }

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...