960C - Subsequence Counting - CodeForces Solution


bitmasks constructive algorithms greedy implementation *1700

Please click on ads to support us..

Python Code:

import heapq
def main():
    X,d = [int(i) for i in input().split()]
    X = X
    s = bin(X)[2:]

    ones = s.count('1')
                    res = []
    count = 0
    oneCount = 0
    for i in reversed(range(len(s))):
        if s[i]=='1':
            res.append(count)
            oneCount += 1
        count +=1
    ANS = []
    START = d
        for c in res:
        ANS.extend([str(START) for _ in range(c)])
        START += d
    for i in range(oneCount):
        ANS.append(str(START))
        START += d
    if len(ANS)>10000:
        print(-1)
    else:
        print(len(ANS))
        print(' '.join(ANS))
    return
    
    

if __name__ == "__main__":
    main()

C++ Code:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
#define rep(a,b) for(int a = 0; a < (b); ++a)
#define pb push_back
#define all(t) t.begin(), t.end()

const int MAXN = 5e5+5;
int n = 0, d = 0;
ll akt_val = 0, akt_ile = 0, akt_ilo = 0;
vector<ll> wyn;

void solve()
{
	cin >> n >> d;
	wyn = vector<ll>();

	akt_val = 1;
	while(n > 0)
	{
		akt_ile = 1, akt_ilo = 2;
		while(akt_ilo*2-1 <= n)
		{
			akt_ilo *= 2, ++akt_ile;
		}
		rep(i,akt_ile) wyn.pb(akt_val);
		akt_val += d, n -= akt_ilo-1;
	}

	cout << wyn.size() << '\n';
	for(auto x : wyn) cout << x << ' ';
	cout << '\n';
}

int main()
{
	ios_base::sync_with_stdio(0);
	cin.tie(0);

	int T = 1;
	//cin >> T;
	while(T--) solve();

	return 0;
}


Comments

Submit
0 Comments
More Questions

Lexical Sorting Reloaded
1514A - Perfectly Imperfect Array
580A- Kefa and First Steps
1472B- Fair Division
996A - Hit the Lottery
MSNSADM1 Football
MATCHES Playing with Matches
HRDSEQ Hard Sequence
DRCHEF Doctor Chef
559. Maximum Depth of N-ary Tree
821. Shortest Distance to a Character
1441. Build an Array With Stack Operations
1356. Sort Integers by The Number of 1 Bits
922. Sort Array By Parity II
344. Reverse String
1047. Remove All Adjacent Duplicates In String
977. Squares of a Sorted Array
852. Peak Index in a Mountain Array
461. Hamming Distance
1748. Sum of Unique Elements
897. Increasing Order Search Tree
905. Sort Array By Parity
1351. Count Negative Numbers in a Sorted Matrix
617. Merge Two Binary Trees
1450. Number of Students Doing Homework at a Given Time
700. Search in a Binary Search Tree
590. N-ary Tree Postorder Traversal
589. N-ary Tree Preorder Traversal
1299. Replace Elements with Greatest Element on Right Side
1768. Merge Strings Alternately