제출 #1337847

#제출 시각아이디문제언어결과실행 시간메모리
1337847mantaggezSpiderman (COCI20_spiderman)C++20
63 / 70
1109 ms200428 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];
        }
        if(k == 0) sum -= cnt[h[i]];
        // cout << '\n' << "sum : ";
        cout << sum << ' ';
        // cout << '\n';
    }

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