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.
    
    
    
        #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;
}
        | 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; } | 
 
            
         English
                    English