Submission #844428

#TimeUsernameProblemLanguageResultExecution timeMemory
844428vjudge1Spiderman (COCI20_spiderman)C++17
49 / 70
1095 ms11532 KiB
#include <bits/stdc++.h>
#define int long long
using namespace std;
int32_t main(){
	int n,k;cin>>n>>k;
	vector<int> arr(n);
	vector<int> say(1000023,0);
	for (int i = 0; i < n; i++){
		cin>>arr[i];
		say[arr[i]]++;
	}
	int alr = 0;
	for (int i = k+1; i < say.size(); i++){
		alr+=say[i];
	}
	alr*=say[k];
	for (int i = 0; i < n; ++i)
	{
		if (arr[i]==k){
			cout<<alr<<" ";
			continue;
		}
		if (arr[i]<k){
			cout<<0<<" ";
			continue;
		}
		arr[i]-=k;
		int ans = 0;
		for (int j = 1; j*j <= arr[i]; j++){
			if (arr[i]%j) continue;
			if (j>k) ans+=say[j];
			if (arr[i]/j>k && arr[i]/j!=j) ans+=say[arr[i]/j];
		}
		cout<<ans<<" ";
	}
	cout<<endl;
}

Compilation message (stderr)

spiderman.cpp: In function 'int32_t main()':
spiderman.cpp:13:22: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   13 |  for (int i = k+1; i < say.size(); i++){
      |                    ~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...