#include <bits/stdc++.h>
using namespace std;
#define int long long
#define rep(i,a,b) for(int i=a;i<=b;++i)
#define per(i,a,b) for(int i=a;i>=b;--i)
#define pii pair<int,int>
#define pb push_back
#define fi first
#define se second
const int MAXN = 3e5 + 10;
int a[MAXN], ans[1000001], cnt[1000001];
int32_t main(){
ios::sync_with_stdio(0);cin.tie(0);
int n,k;cin >> n >> k;
vector<int> v;
rep(i,1,n) cin >> a[i];
rep(i,1,n) cnt[a[i]]++;
rep(i,1,n) v.pb(a[i]);
sort(v.begin(),v.end());
v.erase(unique(v.begin(),v.end()), v.end());
rep(y,k+1,1000) {
if (!cnt[y]) continue;
for (int &val : v) {
if (val%y==k) ans[val]+=cnt[y];
}
}
rep(i,1,n) {
if (a[i] > 1000 && a[i] > k) {
for (int y = k; y <= 1000000; y += a[i]) {
ans[y]++;
}
}
}
rep(i,1,n) cout << ans[a[i]]-(k==0) << " \n"[i==n];
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |