Submission #844401

#TimeUsernameProblemLanguageResultExecution timeMemory
844401vjudge1Spiderman (COCI20_spiderman)C++98
0 / 70
145 ms33716 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[d]; 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...