fork download
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <algorithm>
  4. using namespace std;
  5.  
  6. int bin_src(int *arr, int j, int target) {
  7. int l=0, r=j-1, m;
  8. while(l<=r) {
  9. m=l+(r-l)/2;
  10. if(arr[m]==target) return 1;
  11. else if(arr[m]<target) l=m+1;
  12. else r=m-1;
  13. }
  14. return 0;
  15. }
  16.  
  17. int main() {
  18. int n, k, a[100005], b[100005], j=0;
  19. scanf("%d%d", &n, &k);
  20. for(int i=0; i<n; i++) scanf("%d", &a[i]);
  21. sort(a, a+n);
  22. for(int i=0; i<n; i++) if(a[i]%k!=0 || bin_src(b, j, a[i]/k)==0) b[j]=a[i], j++;
  23. printf("%d", j);
  24. return 0;
  25. }
Success #stdin #stdout 0s 4008KB
stdin
10 2
1 2 3 4 5 6 7 8 9 10
stdout
6