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