fork download
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5.  
  6. int min(int a, int b) {
  7. return a < b ? a : b;
  8. }
  9.  
  10. int main() {
  11. int n;
  12. scanf("%d", &n);
  13.  
  14. if (n < 1) {
  15. return 0;
  16. }
  17.  
  18. char** words = (char**)malloc(n * sizeof(char*));
  19.  
  20. words[0] = "1";
  21. int wordLength = 1;
  22. int wordsWithCurrentLengthCount = 1;
  23. int i = 1;
  24.  
  25. while (i < n) {
  26. int prevLengthStartIndex = i - wordsWithCurrentLengthCount;
  27.  
  28. wordLength++;
  29. wordsWithCurrentLengthCount = 2 * wordsWithCurrentLengthCount + 1;
  30.  
  31. char* word = (char*)malloc((wordLength + 1) * sizeof(char));
  32. word[0] = '0';
  33. strcpy(&word[1], words[prevLengthStartIndex]);
  34. words[i++] = word;
  35.  
  36. int leftToGenerate = n - i;
  37. int amount = min(leftToGenerate, wordsWithCurrentLengthCount - 1);
  38. for (int j = 0; j < amount; j++) {
  39. word = (char*)malloc((wordLength + 1) * sizeof(char));
  40. strcpy(word, words[prevLengthStartIndex + j / 2]);
  41. word[wordLength - 1] = j % 2 ? '1' : '0';
  42. word[wordLength] = '\0';
  43. words[i++] = word;
  44. }
  45. }
  46.  
  47. for (int i = 0; i < n; i++) {
  48. printf("%4d. %s\n", i + 1, words[i]);
  49. }
  50.  
  51. for (int i = 1; i < n; i++) {
  52. free(words[i]);
  53. }
  54. free(words);
  55. }
  56.  
Success #stdin #stdout 0s 4384KB
stdin
1000
stdout
   1. 1
   2. 01
   3. 10
   4. 11
   5. 001
   6. 010
   7. 011
   8. 100
   9. 101
  10. 110
  11. 111
  12. 0001
  13. 0010
  14. 0011
  15. 0100
  16. 0101
  17. 0110
  18. 0111
  19. 1000
  20. 1001
  21. 1010
  22. 1011
  23. 1100
  24. 1101
  25. 1110
  26. 1111
  27. 00001
  28. 00010
  29. 00011
  30. 00100
  31. 00101
  32. 00110
  33. 00111
  34. 01000
  35. 01001
  36. 01010
  37. 01011
  38. 01100
  39. 01101
  40. 01110
  41. 01111
  42. 10000
  43. 10001
  44. 10010
  45. 10011
  46. 10100
  47. 10101
  48. 10110
  49. 10111
  50. 11000
  51. 11001
  52. 11010
  53. 11011
  54. 11100
  55. 11101
  56. 11110
  57. 11111
  58. 000001
  59. 000010
  60. 000011
  61. 000100
  62. 000101
  63. 000110
  64. 000111
  65. 001000
  66. 001001
  67. 001010
  68. 001011
  69. 001100
  70. 001101
  71. 001110
  72. 001111
  73. 010000
  74. 010001
  75. 010010
  76. 010011
  77. 010100
  78. 010101
  79. 010110
  80. 010111
  81. 011000
  82. 011001
  83. 011010
  84. 011011
  85. 011100
  86. 011101
  87. 011110
  88. 011111
  89. 100000
  90. 100001
  91. 100010
  92. 100011
  93. 100100
  94. 100101
  95. 100110
  96. 100111
  97. 101000
  98. 101001
  99. 101010
 100. 101011
 101. 101100
 102. 101101
 103. 101110
 104. 101111
 105. 110000
 106. 110001
 107. 110010
 108. 110011
 109. 110100
 110. 110101
 111. 110110
 112. 110111
 113. 111000
 114. 111001
 115. 111010
 116. 111011
 117. 111100
 118. 111101
 119. 111110
 120. 111111
 121. 0000001
 122. 0000010
 123. 0000011
 124. 0000100
 125. 0000101
 126. 0000110
 127. 0000111
 128. 0001000
 129. 0001001
 130. 0001010
 131. 0001011
 132. 0001100
 133. 0001101
 134. 0001110
 135. 0001111
 136. 0010000
 137. 0010001
 138. 0010010
 139. 0010011
 140. 0010100
 141. 0010101
 142. 0010110
 143. 0010111
 144. 0011000
 145. 0011001
 146. 0011010
 147. 0011011
 148. 0011100
 149. 0011101
 150. 0011110
 151. 0011111
 152. 0100000
 153. 0100001
 154. 0100010
 155. 0100011
 156. 0100100
 157. 0100101
 158. 0100110
 159. 0100111
 160. 0101000
 161. 0101001
 162. 0101010
 163. 0101011
 164. 0101100
 165. 0101101
 166. 0101110
 167. 0101111
 168. 0110000
 169. 0110001
 170. 0110010
 171. 0110011
 172. 0110100
 173. 0110101
 174. 0110110
 175. 0110111
 176. 0111000
 177. 0111001
 178. 0111010
 179. 0111011
 180. 0111100
 181. 0111101
 182. 0111110
 183. 0111111
 184. 1000000
 185. 1000001
 186. 1000010
 187. 1000011
 188. 1000100
 189. 1000101
 190. 1000110
 191. 1000111
 192. 1001000
 193. 1001001
 194. 1001010
 195. 1001011
 196. 1001100
 197. 1001101
 198. 1001110
 199. 1001111
 200. 1010000
 201. 1010001
 202. 1010010
 203. 1010011
 204. 1010100
 205. 1010101
 206. 1010110
 207. 1010111
 208. 1011000
 209. 1011001
 210. 1011010
 211. 1011011
 212. 1011100
 213. 1011101
 214. 1011110
 215. 1011111
 216. 1100000
 217. 1100001
 218. 1100010
 219. 1100011
 220. 1100100
 221. 1100101
 222. 1100110
 223. 1100111
 224. 1101000
 225. 1101001
 226. 1101010
 227. 1101011
 228. 1101100
 229. 1101101
 230. 1101110
 231. 1101111
 232. 1110000
 233. 1110001
 234. 1110010
 235. 1110011
 236. 1110100
 237. 1110101
 238. 1110110
 239. 1110111
 240. 1111000
 241. 1111001
 242. 1111010
 243. 1111011
 244. 1111100
 245. 1111101
 246. 1111110
 247. 1111111
 248. 00000001
 249. 00000010
 250. 00000011
 251. 00000100
 252. 00000101
 253. 00000110
 254. 00000111
 255. 00001000
 256. 00001001
 257. 00001010
 258. 00001011
 259. 00001100
 260. 00001101
 261. 00001110
 262. 00001111
 263. 00010000
 264. 00010001
 265. 00010010
 266. 00010011
 267. 00010100
 268. 00010101
 269. 00010110
 270. 00010111
 271. 00011000
 272. 00011001
 273. 00011010
 274. 00011011
 275. 00011100
 276. 00011101
 277. 00011110
 278. 00011111
 279. 00100000
 280. 00100001
 281. 00100010
 282. 00100011
 283. 00100100
 284. 00100101
 285. 00100110
 286. 00100111
 287. 00101000
 288. 00101001
 289. 00101010
 290. 00101011
 291. 00101100
 292. 00101101
 293. 00101110
 294. 00101111
 295. 00110000
 296. 00110001
 297. 00110010
 298. 00110011
 299. 00110100
 300. 00110101
 301. 00110110
 302. 00110111
 303. 00111000
 304. 00111001
 305. 00111010
 306. 00111011
 307. 00111100
 308. 00111101
 309. 00111110
 310. 00111111
 311. 01000000
 312. 01000001
 313. 01000010
 314. 01000011
 315. 01000100
 316. 01000101
 317. 01000110
 318. 01000111
 319. 01001000
 320. 01001001
 321. 01001010
 322. 01001011
 323. 01001100
 324. 01001101
 325. 01001110
 326. 01001111
 327. 01010000
 328. 01010001
 329. 01010010
 330. 01010011
 331. 01010100
 332. 01010101
 333. 01010110
 334. 01010111
 335. 01011000
 336. 01011001
 337. 01011010
 338. 01011011
 339. 01011100
 340. 01011101
 341. 01011110
 342. 01011111
 343. 01100000
 344. 01100001
 345. 01100010
 346. 01100011
 347. 01100100
 348. 01100101
 349. 01100110
 350. 01100111
 351. 01101000
 352. 01101001
 353. 01101010
 354. 01101011
 355. 01101100
 356. 01101101
 357. 01101110
 358. 01101111
 359. 01110000
 360. 01110001
 361. 01110010
 362. 01110011
 363. 01110100
 364. 01110101
 365. 01110110
 366. 01110111
 367. 01111000
 368. 01111001
 369. 01111010
 370. 01111011
 371. 01111100
 372. 01111101
 373. 01111110
 374. 01111111
 375. 10000000
 376. 10000001
 377. 10000010
 378. 10000011
 379. 10000100
 380. 10000101
 381. 10000110
 382. 10000111
 383. 10001000
 384. 10001001
 385. 10001010
 386. 10001011
 387. 10001100
 388. 10001101
 389. 10001110
 390. 10001111
 391. 10010000
 392. 10010001
 393. 10010010
 394. 10010011
 395. 10010100
 396. 10010101
 397. 10010110
 398. 10010111
 399. 10011000
 400. 10011001
 401. 10011010
 402. 10011011
 403. 10011100
 404. 10011101
 405. 10011110
 406. 10011111
 407. 10100000
 408. 10100001
 409. 10100010
 410. 10100011
 411. 10100100
 412. 10100101
 413. 10100110
 414. 10100111
 415. 10101000
 416. 10101001
 417. 10101010
 418. 10101011
 419. 10101100
 420. 10101101
 421. 10101110
 422. 10101111
 423. 10110000
 424. 10110001
 425. 10110010
 426. 10110011
 427. 10110100
 428. 10110101
 429. 10110110
 430. 10110111
 431. 10111000
 432. 10111001
 433. 10111010
 434. 10111011
 435. 10111100
 436. 10111101
 437. 10111110
 438. 10111111
 439. 11000000
 440. 11000001
 441. 11000010
 442. 11000011
 443. 11000100
 444. 11000101
 445. 11000110
 446. 11000111
 447. 11001000
 448. 11001001
 449. 11001010
 450. 11001011
 451. 11001100
 452. 11001101
 453. 11001110
 454. 11001111
 455. 11010000
 456. 11010001
 457. 11010010
 458. 11010011
 459. 11010100
 460. 11010101
 461. 11010110
 462. 11010111
 463. 11011000
 464. 11011001
 465. 11011010
 466. 11011011
 467. 11011100
 468. 11011101
 469. 11011110
 470. 11011111
 471. 11100000
 472. 11100001
 473. 11100010
 474. 11100011
 475. 11100100
 476. 11100101
 477. 11100110
 478. 11100111
 479. 11101000
 480. 11101001
 481. 11101010
 482. 11101011
 483. 11101100
 484. 11101101
 485. 11101110
 486. 11101111
 487. 11110000
 488. 11110001
 489. 11110010
 490. 11110011
 491. 11110100
 492. 11110101
 493. 11110110
 494. 11110111
 495. 11111000
 496. 11111001
 497. 11111010
 498. 11111011
 499. 11111100
 500. 11111101
 501. 11111110
 502. 11111111
 503. 000000001
 504. 000000010
 505. 000000011
 506. 000000100
 507. 000000101
 508. 000000110
 509. 000000111
 510. 000001000
 511. 000001001
 512. 000001010
 513. 000001011
 514. 000001100
 515. 000001101
 516. 000001110
 517. 000001111
 518. 000010000
 519. 000010001
 520. 000010010
 521. 000010011
 522. 000010100
 523. 000010101
 524. 000010110
 525. 000010111
 526. 000011000
 527. 000011001
 528. 000011010
 529. 000011011
 530. 000011100
 531. 000011101
 532. 000011110
 533. 000011111
 534. 000100000
 535. 000100001
 536. 000100010
 537. 000100011
 538. 000100100
 539. 000100101
 540. 000100110
 541. 000100111
 542. 000101000
 543. 000101001
 544. 000101010
 545. 000101011
 546. 000101100
 547. 000101101
 548. 000101110
 549. 000101111
 550. 000110000
 551. 000110001
 552. 000110010
 553. 000110011
 554. 000110100
 555. 000110101
 556. 000110110
 557. 000110111
 558. 000111000
 559. 000111001
 560. 000111010
 561. 000111011
 562. 000111100
 563. 000111101
 564. 000111110
 565. 000111111
 566. 001000000
 567. 001000001
 568. 001000010
 569. 001000011
 570. 001000100
 571. 001000101
 572. 001000110
 573. 001000111
 574. 001001000
 575. 001001001
 576. 001001010
 577. 001001011
 578. 001001100
 579. 001001101
 580. 001001110
 581. 001001111
 582. 001010000
 583. 001010001
 584. 001010010
 585. 001010011
 586. 001010100
 587. 001010101
 588. 001010110
 589. 001010111
 590. 001011000
 591. 001011001
 592. 001011010
 593. 001011011
 594. 001011100
 595. 001011101
 596. 001011110
 597. 001011111
 598. 001100000
 599. 001100001
 600. 001100010
 601. 001100011
 602. 001100100
 603. 001100101
 604. 001100110
 605. 001100111
 606. 001101000
 607. 001101001
 608. 001101010
 609. 001101011
 610. 001101100
 611. 001101101
 612. 001101110
 613. 001101111
 614. 001110000
 615. 001110001
 616. 001110010
 617. 001110011
 618. 001110100
 619. 001110101
 620. 001110110
 621. 001110111
 622. 001111000
 623. 001111001
 624. 001111010
 625. 001111011
 626. 001111100
 627. 001111101
 628. 001111110
 629. 001111111
 630. 010000000
 631. 010000001
 632. 010000010
 633. 010000011
 634. 010000100
 635. 010000101
 636. 010000110
 637. 010000111
 638. 010001000
 639. 010001001
 640. 010001010
 641. 010001011
 642. 010001100
 643. 010001101
 644. 010001110
 645. 010001111
 646. 010010000
 647. 010010001
 648. 010010010
 649. 010010011
 650. 010010100
 651. 010010101
 652. 010010110
 653. 010010111
 654. 010011000
 655. 010011001
 656. 010011010
 657. 010011011
 658. 010011100
 659. 010011101
 660. 010011110
 661. 010011111
 662. 010100000
 663. 010100001
 664. 010100010
 665. 010100011
 666. 010100100
 667. 010100101
 668. 010100110
 669. 010100111
 670. 010101000
 671. 010101001
 672. 010101010
 673. 010101011
 674. 010101100
 675. 010101101
 676. 010101110
 677. 010101111
 678. 010110000
 679. 010110001
 680. 010110010
 681. 010110011
 682. 010110100
 683. 010110101
 684. 010110110
 685. 010110111
 686. 010111000
 687. 010111001
 688. 010111010
 689. 010111011
 690. 010111100
 691. 010111101
 692. 010111110
 693. 010111111
 694. 011000000
 695. 011000001
 696. 011000010
 697. 011000011
 698. 011000100
 699. 011000101
 700. 011000110
 701. 011000111
 702. 011001000
 703. 011001001
 704. 011001010
 705. 011001011
 706. 011001100
 707. 011001101
 708. 011001110
 709. 011001111
 710. 011010000
 711. 011010001
 712. 011010010
 713. 011010011
 714. 011010100
 715. 011010101
 716. 011010110
 717. 011010111
 718. 011011000
 719. 011011001
 720. 011011010
 721. 011011011
 722. 011011100
 723. 011011101
 724. 011011110
 725. 011011111
 726. 011100000
 727. 011100001
 728. 011100010
 729. 011100011
 730. 011100100
 731. 011100101
 732. 011100110
 733. 011100111
 734. 011101000
 735. 011101001
 736. 011101010
 737. 011101011
 738. 011101100
 739. 011101101
 740. 011101110
 741. 011101111
 742. 011110000
 743. 011110001
 744. 011110010
 745. 011110011
 746. 011110100
 747. 011110101
 748. 011110110
 749. 011110111
 750. 011111000
 751. 011111001
 752. 011111010
 753. 011111011
 754. 011111100
 755. 011111101
 756. 011111110
 757. 011111111
 758. 100000000
 759. 100000001
 760. 100000010
 761. 100000011
 762. 100000100
 763. 100000101
 764. 100000110
 765. 100000111
 766. 100001000
 767. 100001001
 768. 100001010
 769. 100001011
 770. 100001100
 771. 100001101
 772. 100001110
 773. 100001111
 774. 100010000
 775. 100010001
 776. 100010010
 777. 100010011
 778. 100010100
 779. 100010101
 780. 100010110
 781. 100010111
 782. 100011000
 783. 100011001
 784. 100011010
 785. 100011011
 786. 100011100
 787. 100011101
 788. 100011110
 789. 100011111
 790. 100100000
 791. 100100001
 792. 100100010
 793. 100100011
 794. 100100100
 795. 100100101
 796. 100100110
 797. 100100111
 798. 100101000
 799. 100101001
 800. 100101010
 801. 100101011
 802. 100101100
 803. 100101101
 804. 100101110
 805. 100101111
 806. 100110000
 807. 100110001
 808. 100110010
 809. 100110011
 810. 100110100
 811. 100110101
 812. 100110110
 813. 100110111
 814. 100111000
 815. 100111001
 816. 100111010
 817. 100111011
 818. 100111100
 819. 100111101
 820. 100111110
 821. 100111111
 822. 101000000
 823. 101000001
 824. 101000010
 825. 101000011
 826. 101000100
 827. 101000101
 828. 101000110
 829. 101000111
 830. 101001000
 831. 101001001
 832. 101001010
 833. 101001011
 834. 101001100
 835. 101001101
 836. 101001110
 837. 101001111
 838. 101010000
 839. 101010001
 840. 101010010
 841. 101010011
 842. 101010100
 843. 101010101
 844. 101010110
 845. 101010111
 846. 101011000
 847. 101011001
 848. 101011010
 849. 101011011
 850. 101011100
 851. 101011101
 852. 101011110
 853. 101011111
 854. 101100000
 855. 101100001
 856. 101100010
 857. 101100011
 858. 101100100
 859. 101100101
 860. 101100110
 861. 101100111
 862. 101101000
 863. 101101001
 864. 101101010
 865. 101101011
 866. 101101100
 867. 101101101
 868. 101101110
 869. 101101111
 870. 101110000
 871. 101110001
 872. 101110010
 873. 101110011
 874. 101110100
 875. 101110101
 876. 101110110
 877. 101110111
 878. 101111000
 879. 101111001
 880. 101111010
 881. 101111011
 882. 101111100
 883. 101111101
 884. 101111110
 885. 101111111
 886. 110000000
 887. 110000001
 888. 110000010
 889. 110000011
 890. 110000100
 891. 110000101
 892. 110000110
 893. 110000111
 894. 110001000
 895. 110001001
 896. 110001010
 897. 110001011
 898. 110001100
 899. 110001101
 900. 110001110
 901. 110001111
 902. 110010000
 903. 110010001
 904. 110010010
 905. 110010011
 906. 110010100
 907. 110010101
 908. 110010110
 909. 110010111
 910. 110011000
 911. 110011001
 912. 110011010
 913. 110011011
 914. 110011100
 915. 110011101
 916. 110011110
 917. 110011111
 918. 110100000
 919. 110100001
 920. 110100010
 921. 110100011
 922. 110100100
 923. 110100101
 924. 110100110
 925. 110100111
 926. 110101000
 927. 110101001
 928. 110101010
 929. 110101011
 930. 110101100
 931. 110101101
 932. 110101110
 933. 110101111
 934. 110110000
 935. 110110001
 936. 110110010
 937. 110110011
 938. 110110100
 939. 110110101
 940. 110110110
 941. 110110111
 942. 110111000
 943. 110111001
 944. 110111010
 945. 110111011
 946. 110111100
 947. 110111101
 948. 110111110
 949. 110111111
 950. 111000000
 951. 111000001
 952. 111000010
 953. 111000011
 954. 111000100
 955. 111000101
 956. 111000110
 957. 111000111
 958. 111001000
 959. 111001001
 960. 111001010
 961. 111001011
 962. 111001100
 963. 111001101
 964. 111001110
 965. 111001111
 966. 111010000
 967. 111010001
 968. 111010010
 969. 111010011
 970. 111010100
 971. 111010101
 972. 111010110
 973. 111010111
 974. 111011000
 975. 111011001
 976. 111011010
 977. 111011011
 978. 111011100
 979. 111011101
 980. 111011110
 981. 111011111
 982. 111100000
 983. 111100001
 984. 111100010
 985. 111100011
 986. 111100100
 987. 111100101
 988. 111100110
 989. 111100111
 990. 111101000
 991. 111101001
 992. 111101010
 993. 111101011
 994. 111101100
 995. 111101101
 996. 111101110
 997. 111101111
 998. 111110000
 999. 111110001
1000. 111110010