Submission #844517

#TimeUsernameProblemLanguageResultExecution timeMemory
844517vjudge1Spiderman (COCI20_spiderman)C++98
7 / 70
1743 ms20560 KiB
#include<bits/stdc++.h>
using namespace std;
int main(){
	long long a,b,c,d,e,p,h;
	map <long long, int> mp;
	vector <long long> arr;
	cin>>a>>c;
	p=a;
	h=0;
	while(a--){
		cin>>b;
		mp[b]++;
		arr.push_back(b);
		if(b > c){
			h++;
		}

		
	}
	for(long long i=0;p>i;i++){
		if(arr[i] <= 2*c){
			if(arr[i] == c){
				e=h;
			}
			else{
				e=0;
			}
		}
		else{
				e=0;
				d=arr[i];
				d-=c;
				if(mp[1] != 0  && (arr[i] % (1) == c)){
					e+=mp[1];
				}
				if(mp[d] != 0  && (arr[i] % (d) == c)){
					e+=mp[d];
					if(i == d){
						e-=mp[1];
					}
				}
				for(long long j=2; sqrt(d) >= j;j++){
					if(d % j == 0){
						e+=mp[j];
						e+=mp[d / j];
						if(j == (d/j)){
							e-=mp[j];
						}
					}
					
				}
			}
		cout<<e<<" ";
	}


	
}
#Verdict Execution timeMemoryGrader output
Fetching results...