Niestety, nie byliśmy w stanie w pełni poprawnie wyświetlić tego pliku, ponieważ nie jest zakodowany w UTF-8. Możesz pobrać ten plik i spróbować otworzyć go samodzielnie.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <cstdio>

int main () {
	int n, i;
	long long k;
	long long pot_2[62]; // liczba s��w d�ugo�ci co najwy�ej i zaczynaj�cych si� ustalon� liter�
	for (i = 1; i < 61; ++i)
		pot_2[i] = (((long long) 1) << i) - 1; 
	char poprz;
	scanf("%d%lld", &n, &k);
	if (n >= 61 || k <= pot_2[n]) {
		poprz = 'a';
		k--;
	} else if (k <= 2 * pot_2[n]) {
		poprz = 'b';
		k -= pot_2[n] + 1;
	} else if (k <= 3 * pot_2[n]) {
		poprz = 'c';
		k -= 2 * pot_2[n] + 1;
	} else {
		printf("NIE");
		return 0;
	}
	printf("%c", poprz);
	n--;
	while (k > 0) {
		char teraz = 'a';
		if (poprz == teraz)
			teraz++;
		if (n < 61 && k > pot_2[n]) {
			k -= pot_2[n];
			teraz++;
			if (poprz == teraz)
				teraz++;
		}
		k--;
		printf("%c", teraz);
		poprz = teraz;
		n--;
	}
	return 0;
}