#include <stdio.h> char slowo[1000002]; int n; // n-maksymalna długość słowa long long k; // k-te słowo w porządku leksykograficznym long long ck; //bieżąco sprawdzane słowo short int szukaj(int indeks) { short int retc = 0; char i; for( i='a'; i<='c' && !retc && indeks<n; i++) { if(slowo[indeks]!=i) // { slowo[indeks+1] = i; slowo[indeks+2] = '\0'; ck++; //printf("%s %lld %ld\n",slowo,ck,indeks+1); if(ck==k) retc = 1; else retc = szukaj(indeks+1); } } return retc; } int main() { // short int retc; (void)scanf("%d%lld", &n, &k); slowo[0] = ' '; printf("%s", szukaj(0) ? slowo+1 : "NIE" ); // if(retc) // printf("%s",slowo+1); // else // printf("NIE"); 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 43 44 45 46 47 48 49 | #include <stdio.h> char slowo[1000002]; int n; // n-maksymalna długość słowa long long k; // k-te słowo w porządku leksykograficznym long long ck; //bieżąco sprawdzane słowo short int szukaj(int indeks) { short int retc = 0; char i; for( i='a'; i<='c' && !retc && indeks<n; i++) { if(slowo[indeks]!=i) // { slowo[indeks+1] = i; slowo[indeks+2] = '\0'; ck++; //printf("%s %lld %ld\n",slowo,ck,indeks+1); if(ck==k) retc = 1; else retc = szukaj(indeks+1); } } return retc; } int main() { // short int retc; (void)scanf("%d%lld", &n, &k); slowo[0] = ' '; printf("%s", szukaj(0) ? slowo+1 : "NIE" ); // if(retc) // printf("%s",slowo+1); // else // printf("NIE"); return 0; } |