Submission #440628

#TimeUsernameProblemLanguageResultExecution timeMemory
440628Wasif_JamilSpiderman (COCI20_spiderman)C++14
0 / 70
1970 ms123080 KiB
#include<bits/stdc++.h> using namespace std; vector<int>divisors[1000001]; int mp[1000001]; int main(){ for(int i=1; i<=1000000; i++){ for(int j=i; j<=1000000; j+=i){ divisors[j].push_back(i); } } int n, k; cin >> n >> k; vector< pair<int, int> >v(n); for(int i=0; i<n; i++){ cin >> v[i].first; v[i].second = i; mp[v[i].first]++; } sort(v.begin(), v.end()); vector<int>d(n); for(int i=0; i<n; i++){ //cout << v[i] << '\n'; int val = v[i].first - k; if(val <= 0){ if(k == v[i].first){ d[v[i].second] = n-i-1; }else { d[v[i].second] = 0; } } else { int ans = 0; for(int e:divisors[val]){ if(e==k)continue; ans += mp[e]; } d[v[i].second] = ans; } } for(int e:d)cout << e << " "; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...