fork(3) download
  1. #include <cstdio>
  2. #include <cstring>
  3. #include <string>
  4. #include <vector>
  5. using namespace std;
  6. vector<string> cycles;
  7. int main() {
  8. int n;
  9. scanf("%d",&n);
  10. int *num = new int[n+1];
  11. bool *visited = new bool[n+1];
  12. for ( int i=1; i<=n; i++ ) scanf("%d",(num+i));
  13. int count = 0;
  14. int start, present;
  15. for ( int i=1; i<=n; i++ ) {
  16. if ( !visited[i] ) {
  17. string buffer="";
  18. char buf[5];
  19. present = start = i;
  20. sprintf(buf, "%d ", start);
  21. buffer.append(buf);
  22. while (true) {
  23. present = num[present];
  24. visited[present] = true;
  25. sprintf(buf, "%d ", present);
  26. buffer.append(buf);
  27. if ( present==start ) {
  28. cycles.push_back(buffer);
  29. ++count;
  30. break;
  31. }
  32. }
  33. }
  34. }
  35. printf("%d\n",count);
  36. for ( int i=0; i<count; ++i ) printf("%s\n",cycles[i].c_str());
  37. return 0;
  38. }
  39.  
Success #stdin #stdout 0s 3036KB
stdin
1000
384 887 778 916 794 336 387 493 650 422 363 28 691 60 764 927 541 427 173 737 212 369 568 430 783 531 863 124 68 136 930 803 23 59 70 168 394 457 12 43 230 374 920 785 538 199 325 316 371 414 527 92 981 957 874 171 997 282 306 926 85 328 337 506 847 730 314 858 125 896 583 546 815 368 435 365 44 751 88 809 277 179 789 585 404 652 755 400 933 61 677 740 13 227 587 95 540 796 571 379 468 602 98 903 318 653 757 302 281 287 442 866 690 445 620 441 32 118 772 482 676 710 928 857 498 354 966 307 684 220 625 529 872 733 830 504 20 271 709 716 341 150 797 724 619 246 452 922 556 380 489 765 229 842 351 194 501 35 915 988 744 492 228 366 860 937 433 552 438 276 408 475 122 859 396 30 238 236 819 429 144 929 530 777 405 444 614 539 607 841 905 129 689 370 918 471 184 491 500 773 726 645 591 140 955 787 670 83 543 465 198 508 356 805 349 612 623 829 300 344 747 569 423 312 811 606 802 662 731 879 321 627 523 466 417 283 259 925 638 63 601 37 453 900 551 469 72 974 132 882 931 934 895 661 164 200 982 960 774 814 669 191 96 467 91 685 377 108 446 180 419 888 413 660 10 211 343 588 207 714 373 322 256 820 600 722 940 812 941 668 706 128 151 985 659 921 225 270 397 82 631 293 973 673 851 626 386 223 641 899 299 525 210 582 156 995 5 770 274 861 143 580 885 994 206 622 505 962 327 260 945 203 507 22 843 869 190 873 909 959 499 754 249 304 334 134 649 891 47 798 250 991 34 364 254 893 687 126 153 976 189 158 437 461 415 305 29 51 749 557 795 698 700 40 3 682 648 160 152 536 135 340 693 216 630 50 965 286 178 901 239 972 950 290 989 145 391 683 542 570 827 233 262 361 24 762 310 426 678 235 58 615 169 359 313 101 347 727 917 553 579 947 291 971 52 81 632 594 628 215 513 480 611 970 275 642 621 434 889 339 567 771 285 418 261 850 218 519 946 784 459 484 608 479 758 315 472 460 439 26 389 75 234 494 840 174 848 432 463 792 116 522 575 948 952 232 741 55 31 99 326 517 581 219 813 978 686 537 177 208 760 745 912 951 237 561 106 564 245 712 806 935 292 376 956 590 769 919 883 823 983 718 94 127 487 544 378 763 776 89 711 295 18 138 692 154 944 574 329 19 837 964 56 131 572 634 790 74 605 852 251 486 7 196 640 121 968 597 533 197 428 41 284 73 399 831 64 348 715 48 436 205 279 263 42 849 273 123 155 822 458 748 172 702 704 654 908 729 807 721 309 335 699 992 53 560 11 17 110 1 54 115 990 148 224 788 876 255 495 182 604 488 416 297 826 723 298 33 596 1000 963 383 267 87 584 477 117 821 526 137 644 338 311 226 816 854 9 658 828 911 578 977 932 100 953 736 185 775 998 694 440 986 958 355 717 853 663 483 16 791 264 38 342 353 666 512 518 362 84 352 113 301 639 490 105 680 142 637 845 761 674 265 549 296 878 834 157 961 824 141 324 76 470 476 667 913 193 175 719 217 473 497 949 161 563 425 720 481 939 558 221 906 392 672 181 25 664 280 743 331 516 350 187 635 388 288 520 713 734 800 735 451 838 90 705 817 448 701 46 93 665 167 485 166 609 746 996 528 214 514 258 139 496 159 357 646 447 112 884 345 268 14 651 833 877 954 636 599 742 938 801 610 165 524 252 752 987 303 80 592 548 562 188 395 681 753 464 696 67 979 967 554 4 36 862 907 382 15 186 898 409 330 880 317 586 766 617 410 367 27 509 398 545 566 547 535 808 835 870 697 603 942 294 629 163 943 871 333 881 855 739 412 624 372 675 133 969 767 984 170 799 521 222 45 856 402 756 781 924 864 401 411 375 902 868 462 393 534 708 695 192 555 655 449 577 6 725 243 782 266 162 768 278 213 97 209 975 503 550 195 385 836 759 633 559 39 431 8 111 890 565 804 589 201 573 257 511 886 320 897 204 595 176 107 502 272 109 424 346 515 183 130 79 247 894 57 738 242 119 319 780 980 248 618 999 825 657 103 839 114 455 703 332 149 643 65 289 231 240 510 147 62 875 818 443 914 102 810 253 49 381 576 71 993 478 688 656 241 832 707 474 867 21 323 407 2 846 406 390 78 613 456 104 750 936 865 593 308 421 244 728 202 450 66 786 923 77 358 532 86 269 910 146 779 892 732 904 844 598 420 793 403 647 454 679 120 69 616 360 671
stdout
7
1 384 216 612 383 693 949 832 521 711 516 544 196 471 116 441 567 273 413 169 438 434 970 244 900 515 487 686 913 248 974 66 730 93 13 691 473 575 704 672 265 91 677 157 501 806 535 572 748 112 866 209 543 7 387 965 936 914 618 821 739 214 805 547 968 308 223 423 291 706 25 783 4 916 825 675 878 8 493 912 980 86 652 38 457 472 522 295 659 84 585 53 981 269 446 850 695 563 279 207 670 761 801 509 883 589 110 287 940 49 371 795 586 560 48 316 995 679 824 372 698 481 326 622 338 873 759 742 139 709 743 496 561 436 642 986 732 167 433 611 963 104 903 79 88 400 570 822 412 615 584 992 403 262 191 905 894 107 757 636 736 746 646 853 655 666 680 141 341 499 245 551 428 594 148 922 703 392 972 202 645 717 520 89 933 875 559 715 388 286 722 451 459 439 889 320 861 162 492 745 357 687 193 689 719 734 166 937 102 602 488 537 790 898 424 971 728 701 221 747 447 218 829 984 779 67 314 582 335 843 375 3 778 696 425 52 92 740 514 127 966 865 97 540 852 555 399 542 486 978 358 126 354 364 461 389 178 236 283 256 200 773 188 539 605 826 133 872 836 402 233 523 18 427 632 977 77 44 785 862 768 303 973 450 784 36 168 552 41 230 879 111 442 771 548 597 876 39 12 28 124 857 725 705 181 144 724 90 61 85 404 361 189 607 298 270 180 429 628 658 362 158 35 70 896 272 888 886 257 982 910 319 274 660 352 991 793 880 890 897 109 281 373 700 558 348 891 204 140 716 288 812 942 576 654 353 34 59 306 626 854 449 946 688 175 396 145 619 526 154 842 411 58 282 322 580 721 735 609 596 788 15 764 524 138 271 419 917 657 518 763 165 860 266 685 667 142 150 380 536 634 100 379 152 765 252 934 818 333 507 769 80 809 870 195 918 103 98 796 766 752 14 60 926 65 847 393 950 707 664 490 208 83 789 186 444 418 727 448 519 776 753 651 264 467 848 534 131 625 816 943 71 583 699 939 253 895 502 935 443 285 600 182 929 240 63 337 190 841 401 827 969 421 579 807 808 835 856 6 336 869 550 197 184 777 464 494 951 474 948 241 601 604 297 225 811 603 416 101 468 432 480 99 571 458 460 26 531 837 756 954 323 885 573 172 475 952 867 975 786 907 738 528 574 702 906 57 997 69 125 498 564 263 96 95 587 11 363 437 621 644 355 254 661 113 690 217 623 311 299 397 391 239 638 775 681 324 994 454 479 31 930 510 823 624 226 606 723 838 781 967 593 990 420 553 284 820 855 577 908 242 37 394 290 668 637 185 405 24 430 215 349 47 325 206 787 382 340 959 390 901 183 530 19 173 122 710 331 945 478 55 874 633 932 62 328 962 456 315 156 194 370 557 64 506 590 1 
2 887 511 983 146 246 469 463 234 466 174 859 782 554 73 815 163 228 662 301 631 578 729 46 199 500 712 350 798 410 235 417 347 649 16 927 289 941 381 135 830 170 276 211 198 491 760 938 810 697 720 800 27 863 278 588 17 541 251 931 147 452 484 219 300 82 179 819 881 565 42 374 40 43 920 114 445 261 669 845 868 503 292 128 307 386 50 414 359 153 229 731 665 105 318 770 592 115 620 137 20 737 996 120 482 517 378 160 988 844 902 130 220 344 304 673 549 533 56 171 408 426 81 277 343 249 132 529 329 327 505 956 2 
5 794 317 5 
9 650 791 409 678 961 613 267 377 648 483 581 309 641 440 339 909 119 772 562 205 955 407 310 899 346 134 733 485 813 294 985 892 595 224 312 525 692 497 106 653 342 754 833 222 569 155 351 250 882 804 566 849 708 280 714 635 953 21 212 508 919 839 924 149 556 831 799 367 29 68 858 243 453 608 33 23 568 123 928 231 321 143 797 617 117 32 803 545 640 694 161 744 159 915 999 360 976 923 332 203 591 54 957 846 462 75 435 275 10 422 947 656 512 718 713 187 614 87 755 877 431 513 94 227 802 398 683 470 792 330 260 814 629 828 767 987 904 247 72 546 121 676 834 45 538 74 368 51 527 944 993 647 663 639 998 616 477 741 258 960 78 751 268 108 302 293 151 489 177 238 925 643 958 406 762 610 1000 671 674 296 921 455 758 599 495 237 259 774 395 989 598 255 164 366 305 851 192 129 684 476 232 627 9 
22 369 749 884 201 726 817 871 385 630 911 780 979 532 964 750 345 334 22 
30 136 504 376 682 76 365 415 313 210 465 840 864 213 356 893 176 30 
118 118