Skip to content

Commit

Permalink
selectivo día 3
Browse files Browse the repository at this point in the history
  • Loading branch information
Juanito98 committed May 12, 2024
1 parent e0a506f commit 19c54d2
Show file tree
Hide file tree
Showing 308 changed files with 9,345 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
**/*.out
!tests/invalid-cases/*.out
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
#include <chrono>
#include <fstream>
#include <iostream>
#include <random>
#include <string>
#include <vector>

std::mt19937_64 rd(43124091);

long long get_random(long long l, long long r) {
long long x = (rd() % (r - l + 1));
return x + l;
}

std::vector<int> random_values(int N, int L, int R) {
std::vector<int> A(N);
for (int i = 0; i < N; i++) {
A[i] = get_random(L, R);
}
return A;
}

int main() {
std::ofstream input;

for (int subtask = 1; subtask <= 5; subtask++) {
int numberOfCases;
int startPoint;
int nLimit_L, nLimit_R;
if (subtask == 1) {
numberOfCases = 10;
startPoint = 1;
nLimit_L = 2;
nLimit_R = 1000;
} else if (subtask == 2) {
numberOfCases = 10;
startPoint = 1;
nLimit_L = 2;
nLimit_R = 1000;
} else if (subtask == 3) {
numberOfCases = 10;
startPoint = 1;
nLimit_L = 2;
nLimit_R = 300;
} else if (subtask == 4) {
numberOfCases = 10;
startPoint = 1;
nLimit_L = 2;
nLimit_R = 1e5;
} else if (subtask == 5) {
numberOfCases = 16;
startPoint = 1;
nLimit_L = 2;
nLimit_R = 1e5;
}
for (int case_n = 0; case_n < numberOfCases; case_n++) {
int case_number = case_n + startPoint;
std::string casename =
"sub" + std::to_string(subtask) + "." + std::to_string(case_number);
input.open("cases/" + casename + ".in");

int N = nLimit_R;
int M;
if (subtask == 1) {
M = 2;
} else if (subtask == 2) {
M = 3;
} else {
if (case_n & 1) {
M = get_random(1, sqrt(N));
} else {
M = get_random(1, N);
}
}
int K = get_random(1, N / M);
if (subtask == 4) {
K = 1;
}
auto A = random_values(N, 1, 1e9);

input << N << ' ' << M << ' ' << K << '\n';
for (int i = 0; i < N; i++) {
input << A[i] << " \n"[i == N - 1];
}
input.close();
}
}

std::ofstream testplan;
testplan.open("testplan");

testplan << "sub3.sample 0\n";
int casesPerSubtask[] = {0, 10, 10, 10, 10, 16};
int pointsPerSubtask[] = {0, 8, 12, 35, 9, 36};
for (int subtask = 1; subtask <= 5; subtask++) {
for (int case_number = 1; case_number <= casesPerSubtask[subtask];
case_number++) {
std::string casename =
"sub" + std::to_string(subtask) + "." + std::to_string(case_number);
int points = case_number == 1 ? pointsPerSubtask[subtask] : 0;
testplan << casename << " " << points << "\n";
}
}
return 0;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
1000 2 251
132392917 588099958 583476326 913803236 175784254 932684007 37417820 122015076 229181218 563837076 332141056 257914679 111667328 167197325 786303248 817432320 761960576 635836273 187543256 882392357 969497853 201762372 943302462 526210105 466377060 469659949 811160054 64771815 493815585 122597811 960506014 650101110 943798181 163239837 706882433 921868035 46691343 316359819 201562868 506588241 94459841 696148423 812763017 604838417 758626571 945100457 596287051 162519208 889269684 604751311 453219068 426313851 301658259 315651207 956461760 613785168 247946572 278876905 3854074 804470179 541276501 250491170 8084439 790254540 885837253 695627840 871217968 859392703 288274940 221887027 490222092 838204817 7945685 318929057 564895551 260384927 442428301 713909034 815094906 3714565 599534487 542103998 860662717 928327543 644588613 535921363 103466064 156220331 493013216 308050525 737884014 657251889 869289157 151468852 304147097 848171466 230064083 541519486 696766010 665429360 142031934 11096174 327372424 653466850 973605279 175078392 71296338 141901833 688868914 987829086 215856605 593395845 344374291 872342290 601484019 593202921 94269649 816817168 622204711 427430084 973810909 541018322 395050006 673690043 939200048 646035021 470294123 675126173 497404963 749877628 724987392 683888157 299873677 925255257 681057782 685711175 899811021 160209676 223812656 914099914 844739493 170207430 565374566 347916829 200265942 548890232 627114005 870006361 959483891 370632889 357766650 393704361 38483374 415090910 156618529 843912648 45849360 384206491 253038894 631646162 727984920 775391320 767096936 730610264 216709237 868556302 646379292 723471753 925834708 222697172 204191344 186407263 311553531 670699290 226653264 359014933 742043316 525631621 238695589 313595818 36531204 100875678 218839881 551070991 148686551 931382662 458467137 921982033 4829667 867649966 354543759 777938940 992830227 137236012 566151591 741000695 934588088 569591921 471720956 234126769 321803582 797375917 48662357 855230712 709187005 5080877 881915169 756741123 387858556 557670501 57417819 620646128 252888881 845607376 89233962 291882039 643499539 680055195 935479319 268929757 183726234 925101497 59328617 970769083 882798009 525679095 959894579 547637942 108067730 365659588 611595306 840975863 394616116 956226206 478442017 512972297 101390377 475023591 6812718 733092702 981874705 879482090 624119174 406569054 879759595 701988957 966130218 617787597 125481119 324381982 422761146 571545647 265767532 195146182 984202613 758933945 879875965 883638417 608700985 921147201 437642520 150129713 507203591 700310196 762260285 231948476 687607999 534625948 771253415 112829844 544600091 187820063 451356618 636957079 655417456 532317511 806202795 244493991 949635909 674724066 573128442 540964471 807234164 901954290 908826881 990749406 211290038 141684205 870785558 573917187 783034037 239217988 967825382 46355441 759292291 120965022 461504395 720803422 524468847 631998356 812622813 468874715 859573600 472618209 402348268 814612500 285268850 396090780 767391445 609254122 799602631 458491739 551097843 949975566 964434338 196270367 457461486 557819833 702253715 788464531 66905632 446805345 830241283 820181221 687777415 292888835 141142435 225637120 384703961 508803174 85592118 613889267 274592528 272222955 422759353 982116577 656417649 80529938 302548495 50114126 986549324 53827009 431831723 157634818 430572606 923674382 806112614 121965928 554470171 362570009 647094526 193870139 931212285 749341991 201270778 978890046 270619849 701435673 563599354 795183755 81870874 905800898 15698967 741340708 514654904 569098986 933943587 509938839 648906770 17515398 275272092 375549468 189795551 56363767 111799420 820921143 938019029 893346791 842525914 227270235 566352938 922355933 815709328 158871321 802168208 245436126 444542488 726962709 63570412 549336362 688694743 559448530 801639555 840064924 145291981 658396732 844446109 701300599 942142602 451935658 653351661 346962147 260085313 932645537 983273533 779349909 823534557 671732875 819248123 740700310 301582889 411009586 212063972 766524174 642706116 182456588 571173053 646862140 447050382 764351153 142100245 614696582 81344828 491443032 569058910 209841862 103108237 783013970 616522829 171811214 801324479 303038295 525981209 789311749 524276254 358914761 927263036 364929158 217794222 930993668 347134967 740494546 434750237 274656001 10842995 913297133 374180107 930401311 134376846 522613371 38876882 961079818 19035786 912951550 255703372 202132874 414993170 329339963 767777228 442052052 634011853 977590235 477137762 832262991 126182942 104318382 126860774 539487364 444745577 487399496 318232048 327022150 4481282 920738901 923726019 255272320 249074944 36396181 879119154 80180106 654436705 845630954 434564937 254836298 576670495 411476352 553291969 677775576 50040948 70940860 255954777 914933698 770686514 484053315 600782930 372895168 580411368 276396052 203723017 603536517 295037312 663939440 811239313 706516271 382391868 751062264 98061721 635294421 150806852 631779923 223850906 820649982 340471946 453576748 81628369 627912124 320300888 83204642 329694177 499865319 914869524 362268469 577593722 16129199 68050552 420313701 941817116 29472858 169094594 504555030 902488475 808248996 232392669 367104409 571680664 761057309 424029347 173199915 400871969 590177607 110107710 352693052 300272139 237683281 751635111 554091866 714310293 484458946 543382831 560489762 358666400 175884038 182541177 116656522 251186081 620790393 914633279 137153121 100504342 264697427 564167469 51798245 119082198 656575868 668417133 719104873 552143967 407086670 591080250 861902240 298360342 260650504 552852044 821419209 241428450 343259906 812954151 941456817 281063401 902970791 283398550 313932284 385369841 791429844 526022574 314609006 184317374 754533905 948768273 915968588 13352547 386291392 465903304 99634587 537418404 897068731 204025666 558673270 327102361 197668808 898172996 650646023 448106106 917820736 683361536 233135417 791350256 726337839 48601868 392686257 310393559 359351774 702942076 422256133 456270693 171981974 517082884 710060171 568755079 608531979 692576806 162415021 70944859 478635210 215535142 262939555 326234617 534435674 752535846 785228602 244454898 290603736 268128888 328365755 301714208 796965327 82348715 630630091 623715956 991899866 522621366 554160722 492426943 577809655 855185087 910185087 224705705 249499036 473890117 225301530 386946599 236956389 557039402 559545938 947817018 139043689 446475874 461826912 527250970 187247575 413915239 18098181 741033858 354294034 270914085 43463732 305582470 248415265 190296342 29218950 788610869 457174018 597824998 960241193 690291044 282481893 264794623 418625207 64635221 903186804 413913024 670563222 276282627 490361430 840943008 354755586 489041582 445292312 764161760 960489747 750927081 63822344 546092162 708992357 973479849 338675960 11003603 978129603 176649789 193853737 801870164 126047231 323989456 31031685 387128149 559248502 195898264 129277262 654357383 157908334 896761421 52724184 593429409 912482003 67232856 281879990 238694754 509684803 718354271 984196343 217082977 230397574 267284172 845538892 370771343 521970328 401240517 822057855 741373298 991788057 134637301 465550135 341956014 459669371 782328583 927093158 67429092 637254635 728847916 772699915 984837904 823054564 545767794 595155363 15297203 603529003 705032044 231931566 221119072 914107430 321240737 17402881 263804910 866426011 636385248 639220465 771696804 95946386 749896395 721919543 448256750 614921937 338158736 907573240 661551614 155504351 332325386 322201540 524636933 344769339 710673871 281130208 722737406 693591614 653510244 404366283 844210726 296987503 674765020 695078328 293264351 960715128 986801633 493079147 728759814 360415191 715366950 659882723 859590226 522372321 471709133 775403689 809386740 772073737 919350908 505496348 120113517 454744640 642879442 276244471 121044379 616565714 584528995 136639549 756541696 612303914 916459043 337627808 854360399 934946512 725173533 346589347 595633089 169147031 773448994 847780350 943680435 188353365 611101858 605794191 487129514 873477794 751355340 754151375 160367866 538604894 521151469 515085323 580978883 207714651 175895799 233607940 535699415 889437404 561695160 479848075 453322395 37818283 90003562 58711623 429562009 86308026 355293294 790168808 927074033 874291447 134674585 839151167 824703960 818563546 358223504 718012757 64766868 886069837 872760015 402437912 147086734 958011950 37191654 986540624 272308707 637413080 506683140 546362080 407047034 680880458 889206034 754228902 200871480 669059832 733933018 548889780 238764925 793161401 994020177 517456292 778235693 503030531 14290908 391870034 721541531 714235571 717385046 139354160 326484458 51387314 698416730 418018401 383149739 315374935 346704066 102110127 170158277 631060076 852464711 787040542 598692737 316204451 356729818 151286652 921594653 315615141 263203948 52113159 288190396 58658557 73660994 346702716 813299615 453938121 901833259 191447167 98298398 764426413 203269971 367150533 584509381 258195942 732598003 927534532 570842249 824693254 557198058 718400800 149403501 525960719 760219787 17990873 754381934 808463209 363519862 283523269 158771046 92620937 566988615 663806483 22530700 471430972 507096076 734608365 912575827 640077893 867804816 804436246 473158469 53550727 832672476 429079425 434954572 424922015 407771261 428099110 9362669 74306811 321177217 780624661 505050764 332808469 223945787 39690974 890619660 804202309 599353057 343818590 194549081 239612411 5742457 195832295 949300628 101982476 599312926 502149310 784172605 619733477 70531498 804219595 80900486 975579377 903993385 363892923 904889284 583617381 146906932 297376487 937358830 572438847 629005447 721366829 264484162 214030320 877106646 457822262 604322713 289382562 63400578 854365311 782924280 612488890 888365618 217634470
Loading

0 comments on commit 19c54d2

Please sign in to comment.