Submission #844410

#TimeUsernameProblemLanguageResultExecution timeMemory
844410vjudge1Spiderman (COCI20_spiderman)C++98
0 / 70
389 ms24100 KiB
#include<bits/stdc++.h>
using namespace std;
int main(){
	long long a,b,c,d,e,p,h;
	map <long long, long long> 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] <= c){
			if(arr[i] == c){
				e=h;
			}
			else{
				e=0;
			}
		}
		else{
				e=0;
				d=arr[i];
				d-=c;
				long long bol[300005];
				memset(bol,0,sizeof(bol));
				if(mp[1] != 0  && (arr[i] % (1) == c)){
					e+=mp[1];
					bol[1]=1;
				}
				if(mp[d] != 0  && (arr[i] % (d) == c)){
					e+=mp[d];
					bol[d]=1;
				}

				long long j=2;
				while(d != 1){
					if(d % j == 0){
						d/=j;
						if(mp[d] != 0 && (arr[i] % (d) == c)){
							if(bol[d] == 0){
								e+=mp[d];
								bol[d] = 1;
							}
						}
						if(mp[arr[i] / d] != 0 && (arr[i] % ((arr[i] / d)) == c)){
							if(bol[arr[i] / d] == 0){
								e+=mp[arr[i] / d];
								bol[arr[i] / d] = 1;
							}
						}
					}
					else{
						j++;
					}
				}}
		cout<<e<<" ";
	}


	
}
#Verdict Execution timeMemoryGrader output
Fetching results...