#include <bits/stdc++.h>
#define int long long int
#define MP make_pair
#define pb push_back
#define REP(i,n) for(int (i) = 0; (i) < (n); (i)++)
using namespace std;
const double EPS = 0.00001;
const int INF = 1e9+500;
const int N = 1e6+5;
int n,m,q,k;
vector<int> cnt,h;
vector<int> ans;
void fastio() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
}
void solve() {
cin>>n>>k;
h.resize(n);
ans.resize(n);
cnt.resize(N);
for(int i = 0; i<n; i++) {
cin>>h[i];
}
for(int i = 0; i<n; i++) {
if(h[i] <= k) continue;
int ind = h[i];
while(ind < N) {
cnt[ind]++;
ind+=h[i];
}
}
for(int i = 0; i<n; i++) {
if(h[i] - k < 0) {
ans[i] = 0;
continue;
}
if(h[i] == k) {
ans[i] = -1;
continue;
}
ans[i] = cnt[h[i] - k];
}
sort(h.begin(),h.end());
int ind = 0;
while(ind < n && h[ind] <= k) ind++;
int x = n - ind;
for(int i = 0; i<n; i++) {
if(ans[i] == -1) ans[i] = x;
cout<<ans[i]<<" ";
}
}
signed main() {
fastio();
int test = 1;
//cin>>test;
while(test--) {
solve();
}
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
5 ms |
8280 KB |
Output is correct |
2 |
Correct |
8 ms |
8280 KB |
Output is correct |
3 |
Correct |
323 ms |
10164 KB |
Output is correct |
4 |
Correct |
640 ms |
13740 KB |
Output is correct |
5 |
Incorrect |
32 ms |
10064 KB |
Output isn't correct |
6 |
Incorrect |
95 ms |
13900 KB |
Output isn't correct |
7 |
Correct |
33 ms |
10064 KB |
Output is correct |
8 |
Correct |
31 ms |
9860 KB |
Output is correct |
9 |
Correct |
109 ms |
13648 KB |
Output is correct |
10 |
Correct |
90 ms |
13652 KB |
Output is correct |