fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. long long a[10100000],b[1010000],k;
  4. unordered_map<long long,long long> li;
  5. int main()
  6. {
  7. int n;
  8. cin>>n;
  9. k=0;
  10. for(int i=1;i<=n;i++)
  11. cin>>a[i];
  12.  
  13. for(int i=1;i<=n;i++)
  14. {
  15. if(li[a[i]]!=0)
  16. {
  17. a[li[a[i]]]=-1;
  18. li[a[i]]=0;
  19. a[i]=2*a[i];
  20. while(li[a[i]]!=0)
  21. {
  22. a[li[a[i]]]=-1;
  23. li[a[i]]=0;
  24. a[i]=2*a[i];
  25. }
  26. li[a[i]]=i;
  27. }
  28. else
  29. li[a[i]]=i;
  30. }
  31. for(int i=1;i<=n;i++)
  32. if(a[i]!=-1)
  33. k++;
  34. cout<<k<<endl;
  35. for(int i=1;i<=n;i++)
  36. if(a[i]!=-1)
  37. cout<<a[i]<<" ";
  38. cout<<endl;
  39. }
  40.  
Success #stdin #stdout 0s 4448KB
stdin
5
10 40 20 50 30
stdout
5
10 40 20 50 30