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