#include using namespace std; #include #include using namespace __gnu_pbds; /*template using ordered_set = tree, rb_tree_tag, tree_order_statistics_node_update>;*/ typedef long long ll; typedef long double ld; typedef pair pl; typedef pair pii; #define dbg(x) cerr << #x << " is " << x << " " #define gll(x) scanf("%lld",&x) #define gll2(x,y) scanf("%lld%lld",&x,&y) #define gll3(x,y,z) scanf("%lld%lld%lld",&x,&y,&y) #define gllarr(arr,n) f(i,n) gll(arr[i]); #define sz(x) ((int)x.size()) #define s(x) sort(x.begin(),x.end()) #define all(v) v.begin(),v.end() #define rs(v) { s(v) ; r(v) ; } #define r(v) {reverse(all(v));} #define pb push_back #define mp make_pair #define F first #define S second #define f(i,n) for(int i=0;i=0;i--) #define rep(i,a,b) for(int i=a;i<=b;i++) #define repr(i,a,b) for(int i=a;i>=b;i--) const ll mod = 1000000007; const ll inf = (ll)1e17; const ld eps = 1e-12; const ll N = 10000005; const ll LOGN = 19; const ld PI = 3.14159265358979323846; double tick(){static clock_t oldt;clock_t newt=clock();double diff=1.0*(newt-oldt)/CLOCKS_PER_SEC;oldt = newt;return diff;} ll mul(ll a, ll b, ll m = mod) { return (ll)(a * b) % m;} ll add(ll a, ll b, ll m = mod) { a += b; if(a >= m) a -= m; if(a < 0) a += m; return a;} ll power(ll a, ll b, ll m = mod) { if(b == 0) return 1; if(b == 1) return (a % m); ll x = power(a, b / 2, m); x = mul(x, x, m); if(b % 2) x = mul(x, a, m); return x;} int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); vector pre(100,1); int p=1; while(p<50) { pre[p]=pre[p-1]*2; p++; } ll presum[100]={0}; presum[0]=pre[0]; rep(i,1,p) { presum[i]=presum[i-1]+pre[i]; } /*f(i,15) cout<>n; ll final=0ll; while(n--) { ll a; cin>>a; if(a==1) final+=1; else if(a%2!=0) final+=a+1; else { int num=1; f(i,p) { if(a%pre[i]==0) num=i; if(a