Submission #844293

#TimeUsernameProblemLanguageResultExecution timeMemory
844293vjudge1Spiderman (COCI20_spiderman)C++17
14 / 70
54 ms21584 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define endl "\n"
#define all(c) (c).begin(), (c).end()

const int N = 1e6 + 6;
int cnt[N],freq[N];

void solve(){	

	int n,k;
	cin >> n >> k;

	vector<int> v(n),ans(n);
	for(int i = 0; i < n; i++){
		cin >> v[i];
		if(v[i] > k) freq[v[i]]++;
	}

	for(int i = 1; i < N; i++){
		for(int j = i; j < N; j += i){
			cnt[j] += freq[i];
		}
	}

	int fuck = 0;
	for(int i = n - 1; i >= 0; i--){
		if(v[i] > k){
			ans[i] = cnt[v[i] - k];
		}
		else if(v[i] == k) ans[i] = fuck;
		fuck += (v[i] > k);
	}

	for(int x : ans){
		cout << x - (k == 0) << ' ';
	}

}

signed main(){

	#ifndef ONLINE_JUDGE
	//	freopen("in.txt","r",stdin); freopen("out.txt","w",stdout);
	#endif

	ios_base::sync_with_stdio(0);
	cin.tie(0);

	int t = 1;
//	cin >> t;

	while(t--){
		solve();
	}

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