Submission #231816

#TimeUsernameProblemLanguageResultExecution timeMemory
231816CodeTiger927Spiderman (COCI20_spiderman)C++14
56 / 70
1688 ms15120 KiB
using namespace std;

#include <iostream>
#include <unordered_map>
#include <cmath>

unordered_map<int,int> us;
int zero = 0;
int arr[300005];
int ans[300005];

int main() {
	int N,K;
	cin >> N >> K;
	for(int i = 0;i < N;i++) {
		int cur;
		cin >> cur;
		arr[i] = cur;
		us[cur]++;
		if(cur > K) {
			zero++;
		}
	}
	for(int i = 0;i < N;++i) {
		int cur = arr[i] - K;
		if(cur < 0) {
			continue;
		}else if(cur == 0) {
			ans[i] = zero;
			continue;
		}
		for(int j = 1;j <= sqrt(cur);++j) {
			if(cur % j == 0) {
				int counter = cur / j;
				if(j > K) ans[i] += us[j];
				if(counter > K && counter != j) ans[i] += us[counter];
			}
		}
	}
	for(int i = 0;i < N;i++) {
		cout << ans[i] << " ";
	}
	cout << endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...