func_code_string: #include <bits/stdc++.h>   using namespace std;   int main() {     int n, i;     scanf( %d , &n);     long long int a[n];     set<long long int> x;     map<long long int, set<int> > m;     for (i = 0; i < n; i++) {       scanf( %lld , &a[i]);       x.insert(a[i]);       m[a[i]].insert(i);     }     while (!x.empty()) {       long long int j = *x.begin();       if (m[j].size() >= 2) {         m[j].erase(m[j].begin());         int k = *(m[j].begin());         m[j].erase(m[j].begin());         m[2 * j].insert(k);         x.insert(2 * j);       } else {         x.erase(x.begin());       }     }     vector<pair<int, long long int> > ans;     map<long long int, set<int> >::iterator it;     for (it = m.begin(); it != m.end(); it++) {       if ((it->second).size() == 1) {         ans.push_back(make_pair(*(it->second).begin(), it->first));       }     }     sort(ans.begin(), ans.end());     cout << ans.size() << endl;     for (i = 0; i < ans.size(); i++) {       printf( %lld  , ans[i].second);     }     printf(  n );   }   