Submission #345646

#TimeUsernameProblemLanguageResultExecution timeMemory
345646Pichon5Spiderman (COCI20_spiderman)C++17
7 / 70
2085 ms524292 KiB
#include<bits/stdc++.h> #define lcm(a,b) (a/__gcd(a,b))*b #define fast ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); #define ll long long int #define vi vector<int> #define vll vector<ll> #define pb push_back #define F first #define S second #define mp make_pair //salida rapida "\n" //DECIMALES fixed<<sp(n)<<x<<endl; //gcd(a,b)= ax + by //lCB x&-x //set.erase(it) - ersases the element present at the required index//auto it = s.find(element) //set.find(element) - iterator pointing to the given element if it is present else return pointer pointing to set.end() //set.lower_bound(element) - iterator pointing to element greater than or equal to the given element //set.upper_bound(element) - iterator pointing to element greater than the given element // | ^ using namespace std; int main() { int n,k,x; cin>>n>>k; vi v; map<int,int>m; int mayores=0; for(int i=0;i<n;i++){ cin>>x; if(x>k){ mayores++; } m[x]++; v.pb(x); } vi res; for(int i=0;i<n;i++){ int c=0; int num=v[i]-k; if(v[i]<k){ res.pb(0); continue; } if(v[i]==k){ res.pb(mayores); continue; } for(int l=1;l*l<=num;l++){ if(k==0){ if(num % l ==0){ c+=m[l]; if(l != (num/l)){ c+=m[num/l]; } } res.pb(c-1); }else{ if(num%l==0){ if(v[i]%l!=0){ c+=m[l]; } if(v[i]%(num/l)!=0 && l!=(num/l)){ c+=m[(num/l)]; } } } } res.pb(c); } for(int i=0;i<n;i++){ cout<<res[i]<<" "; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...