fork download
  1. program sairsodo;
  2. const MAXN=100000;
  3. type elenco = array[1..MaXN] of qword;
  4. var N,i, idmediana, idmediana1:qword;
  5. calcolacosto,calcolacosto1, altezzainiziale, altezzainiziale1:int64;
  6. costo, costo1:qword;
  7. H, ricordaltezze: elenco;
  8. Procedure scambia (var a,b: qword);
  9. var x:qword;
  10. begin
  11. x:=a;
  12. a:=b;
  13. b:=x;
  14. end;
  15. Procedure ordinamento (estremoi,estremos: qword; var v : elenco; ordinato:boolean);
  16. var inf, sup, medio:qword;
  17. pivot :qword;
  18. begin
  19. inf:=estremoi;
  20. sup:=estremos;
  21. medio:= (estremoi+estremos) div 2;
  22. pivot:=v[medio];
  23. repeat
  24. if (ordinato) then
  25. begin
  26. while (v[inf]<pivot) do inf:=inf+1;
  27. while (v[sup]>pivot) do sup:=sup-1;
  28. end;
  29. if inf<=sup then
  30. begin
  31. scambia(v[inf],v[sup]);
  32. inf:=inf+1;
  33. sup:=sup-1;
  34. end;
  35. until inf>sup;
  36. if (estremoi<sup) then ordinamento(estremoi,sup,v,ordinato);
  37. if (inf<estremos) then ordinamento(inf,estremos,v,ordinato);
  38. end;
  39.  
  40. begin
  41. readln(N);
  42. for i:=1 to N do begin read(H[i]); ricordaltezze[i]:=H[i]; end;readln;
  43. costo:=0; costo1:=0;
  44. ordinamento (1,N,H, true);
  45. for i:=1 to N do write(H[i],' '); writeln;
  46. if N mod 2 <>0 then
  47. begin
  48. idmediana:=(N+1) div 2;
  49. altezzainiziale:=H[idmediana]-(idmediana-1);
  50. if altezzainiziale<0 then altezzainiziale:=0;
  51. for i:=1 to N do
  52. begin
  53. calcolacosto:=(ricordaltezze[i] - (altezzainiziale +i-1));
  54. if calcolacosto<0 then calcolacosto:=-calcolacosto;
  55. costo:= costo + calcolacosto ;
  56. end;
  57. writeln(costo);
  58. end
  59. else
  60. begin
  61. idmediana:=((N div 2)+ ((N+1) div 2)) div 2;
  62. idmediana1:=idmediana+1;
  63. altezzainiziale:=H[idmediana]-(idmediana-1);
  64. altezzainiziale1:=H[idmediana1]-(idmediana1-1);
  65. if altezzainiziale<0 then altezzainiziale:=0;
  66. if altezzainiziale1<0 then altezzainiziale1:=0;
  67. for i:=1 to N do
  68. begin
  69. calcolacosto:=(ricordaltezze[i] - (altezzainiziale +i-1));
  70. if calcolacosto<0 then calcolacosto:=-calcolacosto;
  71. costo:= costo + calcolacosto ;
  72. calcolacosto1:=(ricordaltezze[i] - (altezzainiziale1 +i-1));
  73. if calcolacosto1<0 then calcolacosto1:=-calcolacosto1;
  74. costo1:= costo1 + calcolacosto1 ;
  75. end;
  76. if costo<costo1 then writeln(costo)
  77. else writeln(costo1);
  78. end;
  79. writeln(idmediana1,' ',H[idmediana1],' ', ricordaltezze[idmediana1]) ;
  80.  
  81. end.
  82.  
Success #stdin #stdout 0s 5280KB
stdin
1000
4746 2985 3168 440 1425 4940 4072 3376 801 4264 4858 4924 1393 1739 602 2841 3264 1975 2201 4895 2515 2142 3438 258 2273 4647 3885 3937 3468 798 3454 3214 136 2974 6 1561 2915 4078 1290 68 4694 1148 4992 1087 2888 1947 281 1152 3922 2482 2399 2789 4624 837 3048 1897 1836 3285 2186 304 435 641 4871 571 4967 4877 2133 2882 308 3423 2950 2 923 4295 1090 3811 1242 1371 1315 1516 3853 66 4306 3477 904 3706 1726 2740 1991 3913 4397 2426 906 4268 2998 873 4145 1483 3756 805 4906 3058 808 829 2353 1898 993 4947 4621 3660 2816 3474 3727 2122 3303 983 2180 1381 3723 4171 294 4472 2949 2552 3740 947 3426 4238 2430 3534 43 3688 2944 851 870 298 4101 3215 245 3722 3227 4413 3548 1954 1535 3203 4289 3715 4585 3013 4238 1231 3837 2188 3784 2578 4487 3562 3168 3270 3448 3211 3310 1392 415 532 1690 868 3747 3288 943 3327 2701 843 1633 589 4047 923 656 4984 288 1247 1215 4125 3435 1351 1703 4274 4913 4871 2544 4713 4435 2207 1106 4850 2739 4148 2070 2839 3788 3013 1166 2842 3857 2799 3431 4256 3722 439 4240 4010 1686 455 3136 1473 3159 1191 2100 4424 1063 4644 4138 1850 1851 244 3052 943 744 122 3782 4533 4488 4948 2375 3345 2747 2158 2601 2822 3949 1841 1832 1988 3648 1320 3461 1807 2512 561 1232 4927 1558 370 1777 4761 1966 4829 704 2710 1303 838 3595 791 786 2322 488 4886 4480 3089 2708 4782 1282 892 1770 4931 2213 1583 3090 1077 3497 674 1004 1407 1044 4133 1168 4362 314 3225 3425 1617 4063 2020 3761 1202 4343 4249 2440 175 3691 1500 4957 4973 2392 3079 1256 957 4663 699 2034 4512 1373 4390 919 3770 4875 3439 3132 189 1664 1557 3159 2080 4930 1920 4634 625 2521 2074 2152 1212 3574 3462 2538 2318 1541 3794 3276 2556 845 1662 2068 2219 2405 2987 989 2280 2779 4121 3822 4443 2031 3333 2875 3313 253 2509 3938 4126 935 1090 339 4509 904 4229 1828 2446 3023 1456 1354 221 3118 3423 2440 1875 2762 3429 508 541 3902 4330 1337 2285 2663 4212 598 4268 3074 888 3394 4009 3331 85 4871 4235 4314 1699 1681 3690 3155 3036 3911 2625 2811 2703 4501 573 2484 1361 2467 1386 691 3804 3672 4706 4368 622 3974 3794 1511 3720 4156 1194 158 4027 429 824 2078 3463 4514 1585 2851 4777 562 662 3832 1415 2587 1316 2776 1406 2703 3467 1562 2727 3173 2283 4701 3499 1077 2564 3572 1585 3758 3730 612 4188 4554 4042 2651 421 627 1854 1550 1190 3868 383 2605 1455 1699 382 4214 754 201 776 3481 4727 3059 4535 3226 489 2099 1798 2074 858 528 4039 46 1435 3081 4049 1856 61 903 4758 2603 4771 141 1560 2578 3193 1942 1792 3947 3496 3921 3781 3223 1980 3316 2801 3821 415 4600 896 2625 1480 1287 4023 4267 4368 3072 2475 781 327 2234 3384 1450 3727 4945 381 1920 3239 2173 2220 3087 2446 2353 1310 779 669 464 4600 2436 64 496 1414 2896 1783 437 3516 2504 3510 991 3285 189 4577 3022 1640 3305 2967 2021 1577 2558 546 149 646 2993 2502 3308 3772 3171 3772 3372 1960 188 221 3374 4437 3356 3811 2953 2212 3673 296 1850 3863 4874 4872 1855 4531 4191 3876 1108 3101 774 2610 3747 119 112 3408 3891 4636 2180 3616 1596 2369 189 1322 1806 4897 1485 1111 2110 1511 1407 312 374 1281 1536 3581 812 727 3809 3273 180 4583 883 280 4703 995 3688 4946 1983 868 4914 3579 4589 103 1253 1395 1353 2739 2506 4815 4250 266 127 976 1547 1663 909 3712 3742 4718 3337 274 4301 572 554 4004 2919 4242 303 4903 111 217 3482 1052 1673 1088 2448 3026 179 1306 2841 781 1572 4320 1757 4472 2335 2666 3184 1077 3736 2873 1351 3037 3445 3258 3394 1364 2500 3697 1267 3963 266 1102 16 1939 2190 3816 1317 3721 1474 510 4502 3047 1182 2611 3871 3517 1629 3407 946 365 1280 2298 3402 4725 556 3148 2441 4408 3197 3709 3372 3464 1163 3388 1755 4705 3556 4425 3426 30 1287 2928 4429 2470 539 3300 987 3520 1707 1934 3885 2987 584 3639 4064 2492 3140 2858 1900 1337 1567 272 1153 4082 12 4261 3787 4920 3686 3565 4951 4973 1493 4380 3795 3384 2681 4783 3256 740 1717 2141 80 2301 2132 496 4793 272 3354 3045 1610 1273 4670 4115 355 1034 3376 494 955 3414 4059 906 4740 1904 1638 3535 1640 4319 3318 4896 1412 1387 2037 1492 40 4170 1988 1185 794 343 4231 2404 1616 253 2872 3324 1287 1248 3818 2242 1015 2878 4500 755 4782 1139 642 1423 1810 313 1319 3222 3052 4709 4714 3093 231 3055 630 1025 4750 4861 4782 2718 114 2654 1042 2754 3902 4861 4996 1269 4091 4497 3376 3873 636 4019 1648 2446 684 4320 669 3736 4029 1735 1829 4260 1142 2460 1637 2244 3673 1419 4963 140 4073 2357 2894 4328 3570 2890 597 2661 3739 3974 2887 4375 4345 887 3174 29 207 195 3765 4236 3282 595 4848 4425 4407 1486 3021 3080 2905 2984 3220 3331 1694 2466 2659 264 357 3256 4278 4096 3582 3517 4824 2927 4404 4350 2956 4612 4545 1722 3848 4179 3669 49 4956 3076 1535 2978 2508 792 2314 2081 4123 4008 4547 1782 625 1256 1391 4903 1705 4973 3420 2881 4253 4176 2231 2209 3788 3128 283 3989 2307 304 4038 2264 4732 1925 1594 2241 4069 3908 674 3193 2917 1573 1327 3542 2830 4070 4797 887 396 4569 3768 4649 3745 2351 3210 2534 1831 3494 2875 4138 3798 3265 
stdout
2 6 12 16 29 30 40 43 46 49 61 64 66 68 80 85 103 111 112 114 119 122 127 136 140 141 149 158 175 179 180 188 189 189 189 195 201 207 217 221 221 231 244 245 253 253 258 264 266 266 272 272 274 280 281 283 288 294 296 298 303 304 304 308 312 313 314 327 339 343 355 357 365 370 374 381 382 383 396 415 415 421 429 435 437 439 440 455 464 488 489 494 496 496 508 510 528 532 539 541 546 554 556 561 562 571 572 573 584 589 595 597 598 602 612 622 625 625 627 630 636 641 642 646 656 662 669 669 674 674 684 691 699 704 727 740 744 754 755 774 776 779 781 781 786 791 792 794 798 801 805 808 812 824 829 837 838 843 845 851 858 868 868 870 873 883 887 887 888 892 896 903 904 904 906 906 909 919 923 923 935 943 943 946 947 955 957 976 983 987 989 991 993 995 1004 1015 1025 1034 1042 1044 1052 1063 1077 1077 1077 1087 1088 1090 1090 1102 1106 1108 1111 1139 1142 1148 1152 1153 1163 1166 1168 1182 1185 1190 1191 1194 1202 1212 1215 1231 1232 1242 1247 1248 1253 1256 1256 1267 1269 1273 1280 1281 1282 1287 1287 1287 1290 1303 1306 1310 1315 1316 1317 1319 1320 1322 1327 1337 1337 1351 1351 1353 1354 1361 1364 1371 1373 1381 1386 1387 1391 1392 1393 1395 1406 1407 1407 1412 1414 1415 1419 1423 1425 1435 1450 1455 1456 1473 1474 1480 1483 1485 1486 1492 1493 1500 1511 1511 1516 1535 1535 1536 1541 1547 1550 1557 1558 1560 1561 1562 1567 1572 1573 1577 1583 1585 1585 1594 1596 1610 1616 1617 1629 1633 1637 1638 1640 1640 1648 1662 1663 1664 1673 1681 1686 1690 1694 1699 1699 1703 1705 1707 1717 1722 1726 1735 1739 1755 1757 1770 1777 1782 1783 1792 1798 1806 1807 1810 1828 1829 1831 1832 1836 1841 1850 1850 1851 1854 1855 1856 1875 1897 1898 1900 1904 1920 1920 1925 1934 1939 1942 1947 1954 1960 1966 1975 1980 1983 1988 1988 1991 2020 2021 2031 2034 2037 2068 2070 2074 2074 2078 2080 2081 2099 2100 2110 2122 2132 2133 2141 2142 2152 2158 2173 2180 2180 2186 2188 2190 2201 2207 2209 2212 2213 2219 2220 2231 2234 2241 2242 2244 2264 2273 2280 2283 2285 2298 2301 2307 2314 2318 2322 2335 2351 2353 2353 2357 2369 2375 2392 2399 2404 2405 2426 2430 2436 2440 2440 2441 2446 2446 2446 2448 2460 2466 2467 2470 2475 2482 2484 2492 2500 2502 2504 2506 2508 2509 2512 2515 2521 2534 2538 2544 2552 2556 2558 2564 2578 2578 2587 2601 2603 2605 2610 2611 2625 2625 2651 2654 2659 2661 2663 2666 2681 2701 2703 2703 2708 2710 2718 2727 2739 2739 2740 2747 2754 2762 2776 2779 2789 2799 2801 2811 2816 2822 2830 2839 2841 2841 2842 2851 2858 2872 2873 2875 2875 2878 2881 2882 2887 2888 2890 2894 2896 2905 2915 2917 2919 2927 2928 2944 2949 2950 2953 2956 2967 2974 2978 2984 2985 2987 2987 2993 2998 3013 3013 3021 3022 3023 3026 3036 3037 3045 3047 3048 3052 3052 3055 3058 3059 3072 3074 3076 3079 3080 3081 3087 3089 3090 3093 3101 3118 3128 3132 3136 3140 3148 3155 3159 3159 3168 3168 3171 3173 3174 3184 3193 3193 3197 3203 3210 3211 3214 3215 3220 3222 3223 3225 3226 3227 3239 3256 3256 3258 3264 3265 3270 3273 3276 3282 3285 3285 3288 3300 3303 3305 3308 3310 3313 3316 3318 3324 3327 3331 3331 3333 3337 3345 3354 3356 3372 3372 3374 3376 3376 3376 3384 3384 3388 3394 3394 3402 3407 3408 3414 3420 3423 3423 3425 3426 3426 3429 3431 3435 3438 3439 3445 3448 3454 3461 3462 3463 3464 3467 3468 3474 3477 3481 3482 3494 3496 3497 3499 3510 3516 3517 3517 3520 3534 3535 3542 3548 3556 3562 3565 3570 3572 3574 3579 3581 3582 3595 3616 3639 3648 3660 3669 3672 3673 3673 3686 3688 3688 3690 3691 3697 3706 3709 3712 3715 3720 3721 3722 3722 3723 3727 3727 3730 3736 3736 3739 3740 3742 3745 3747 3747 3756 3758 3761 3765 3768 3770 3772 3772 3781 3782 3784 3787 3788 3788 3794 3794 3795 3798 3804 3809 3811 3811 3816 3818 3821 3822 3832 3837 3848 3853 3857 3863 3868 3871 3873 3876 3885 3885 3891 3902 3902 3908 3911 3913 3921 3922 3937 3938 3947 3949 3963 3974 3974 3989 4004 4008 4009 4010 4019 4023 4027 4029 4038 4039 4042 4047 4049 4059 4063 4064 4069 4070 4072 4073 4078 4082 4091 4096 4101 4115 4121 4123 4125 4126 4133 4138 4138 4145 4148 4156 4170 4171 4176 4179 4188 4191 4212 4214 4229 4231 4235 4236 4238 4238 4240 4242 4249 4250 4253 4256 4260 4261 4264 4267 4268 4268 4274 4278 4289 4295 4301 4306 4314 4319 4320 4320 4328 4330 4343 4345 4350 4362 4368 4368 4375 4380 4390 4397 4404 4407 4408 4413 4424 4425 4425 4429 4435 4437 4443 4472 4472 4480 4487 4488 4497 4500 4501 4502 4509 4512 4514 4531 4533 4535 4545 4547 4554 4569 4577 4583 4585 4589 4600 4600 4612 4621 4624 4634 4636 4644 4647 4649 4663 4670 4694 4701 4703 4705 4706 4709 4713 4714 4718 4725 4727 4732 4740 4746 4750 4758 4761 4771 4777 4782 4782 4782 4783 4793 4797 4815 4824 4829 4848 4850 4858 4861 4861 4871 4871 4871 4872 4874 4875 4877 4886 4895 4896 4897 4903 4903 4906 4913 4914 4920 4924 4927 4930 4931 4940 4945 4946 4947 4948 4951 4956 4957 4963 4967 4973 4973 4973 4984 4992 4996 
1259342
501 2661 2578