結果
問題 |
No.3178 free sort
|
ユーザー |
![]() |
提出日時 | 2025-06-13 22:58:12 |
言語 | C (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 1 ms / 2,000 ms |
コード長 | 18,323 bytes |
コンパイル時間 | 202 ms |
コンパイル使用メモリ | 28,944 KB |
実行使用メモリ | 7,848 KB |
最終ジャッジ日時 | 2025-06-13 22:58:14 |
合計ジャッジ時間 | 1,736 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 5 |
other | AC * 40 |
コンパイルメッセージ
main.c: In function ‘main’: main.c:6:59: warning: implicit declaration of function ‘write’ [-Wimplicit-function-declaration] 6 | #define wt1(v) ({char wbuf[64],*wp=wbuf+sizeof wbuf;wt(v);write(1,wp,wbuf+sizeof wbuf-wp);}) | ^~~~~ main.c:251:9: note: in expansion of macro ‘wt1’ 251 | wt1(z); | ^~~ main.c:252:9: warning: implicit declaration of function ‘_exit’ [-Wimplicit-function-declaration] 252 | _exit(0); | ^~~~~ main.c:252:9: warning: incompatible implicit declaration of built-in function ‘_exit’ [-Wbuiltin-declaration-mismatch]
ソースコード
#pragma GCC optimize("Ofast") #pragma GCC target("avx2") #define rd_init() char*rp=({char*mmap();mmap(0l,1l<<25,1,2,0,0ll);}) #define wt(v) ({unsigned _z=v;do*--wp=_z%10+48;while(_z/=10);}) #define wt1(v) ({char wbuf[64],*wp=wbuf+sizeof wbuf;wt(v);write(1,wp,wbuf+sizeof wbuf-wp);}) #define rep(v,e) for(typeof(e)v=0;v<e;++v) #define reps(v,s,e) for(typeof(e)v=s;v<e;++v) #define MD 998244353 typedef unsigned long ulong; unsigned const fac[]={ 1, 833304363, 660632282, 615755686, 998047254, 639703568, 453670701, 794183641, 941747501, 412973089, 772656801, 36327821, 893229936, 328334944, 893518880, 564833604, 776540593, 688873642, 726993833, 932983970, 128216278, 649554864, 871562632, 761498663, 210672823, 743270971, 464445908, 175573687, 833947050, 357823271, 172803714, 350866487, 690071003, 864179410, 288856201, 929601910, 106778689, 313992114, 466421725, 757663653, 46617525, 347362600, 166862154, 693078209, 144244571, 882408898, 983464882, 574749332, 213768760, 741463662, 890142251, 202262961, 658405368, 737717514, 410107025, 690309, 693968959, 341886645, 390564572, 396400177, 792789611, 568189311, 896995063, 457044531, 80489582, 402490933, 716053903, 234035031, 701594340, 607706743, 717580013, 430127488, 706932617, 283846067, 745989638, 143778807, 110865259, 791055851, 462638582, 39061954, 794151417, 152451405, 642848541, 252219955, 372254667, 386610321, 907605006, 954675005, 465499254, 577331041, 33190716, 940376360, 493881726, 78238969, 281915241, 525399348, 696674125, 732119047, 404203922, 293469198, 903339290, 262058298, 702651176, 185617355, 679081391, 397318861, 456285045, 995214301, 251192546, 379010026, 187135021, 745508031, 691448896, 176805032, 704014229, 126954088, 855356143, 208223105, 154176644, 502834844, 713797428, 431045418, 553507580, 940384666, 516268909, 311994785, 226456217, 240690798, 275558954, 835896059, 23745510, 753187941, 193192626, 984077911, 360733089, 412556172, 609927147, 721934275, 84672440, 769834809, 805529589, 321838643, 269450156, 257906422, 557311239, 88566463, 609474687, 271312438, 147254629, 392425552, 837461266, 587089102, 831274938, 866637186, 494263987, 350415814, 526295537, 142459893, 85525688, 327184650, 893291440, 402569553, 642211999, 195685559, 847533864, 242231840, 197756513, 31824637, 167105676, 353747895, 509639222, 802056356, 853727910, 831600522, 353598971, 978561833, 415665360, 499395536, 240171711, 39982516, 336169897, 449042465, 972199040, 95933222, 192812445, 107342543, 904039668, 245279983, 772419561, 199239745, 556945780, 219098611, 680052439, 532712922, 455558559, 498333175, 759659037, 617923166, 382448388, 186268782, 557094195, 708854839, 41795586, 578610237, 78652428, 277858531, 802232933, 12984187, 688128904, 747919798, 535817571, 195056574, 789300172, 818828332, 787058383, 785210793, 792752264, 198791639, 872884844, 92731264, 29229932, 215288339, 625337189, 162351690, 192208002, 305789340, 395648089, 556930505, 848402600, 935841200, 739452219, 82719354, 847923750, 88346797, 427973031, 352294754, 971216492, 333609382, 668226544, 945190338, 28263099, 72555329, 626346706, 132024451, 735586809, 933240006, 444078714, 294810364, 728717984, 697493119, 89776222, 317167980, 634069136, 554517592, 975123855, 286593746, 491684840, 704831482, 349238907, 175781962, 722183454, 517425508, 385800478, 962437544, 336918851, 142048283, 987517815, 246214261, 441983058, 887149558, 371510416, 537538243, 633366503, 774835317, 7662316, 929755976, 908602335, 710650969, 225756512, 233309687, 758306641, 806938998, 681384044, 406778759, 73559959, 95933634, 119394064, 36674428, 296930470, 799843213, 497211282, 561308294, 693648538, 409781810, 199343329, 91410189, 699020919, 788392301, 427321092, 889678732, 594112456, 276309710, 775014788, 562266189, 910172402, 272734405, 863236949, 292630666, 363766453, 301492979, 466975660, 263791700, 905192639, 119948055, 417246105, 233939875, 294989394, 902709870, 662846858, 440929533, 792232676, 361198484, 638556471, 519681460, 637810117, 959561671, 507141122, 366582762, 535935445, 504375121, 205822007, 285767583, 395546350, 388590899, 887673597, 803924648, 410591335, 746378863, 39811295, 208577321, 919760763, 808844251, 31435587, 9410542, 810793504, 112008789, 194737610, 273983909, 610660887, 41965286, 854237285, 375735977, 856039476, 790674508, 78921088, 152031918, 593698614, 142859121, 774791943, 552760801, 765650325, 581095459, 29405696, 96553614, 501394000, 610671891, 270295648, 570927004, 702144816, 416335707, 322647586, 724929380, 668190389, 186976237, 703037768, 249454012, 374640872, 793389793, 673099235, 85471918, 828575570, 612557047, 409785103, 617232885, 197994359, 991001339, 471196104, 36195913, 427008196, 836953803, 622431830, 943133006, 320889851, 935325182, 669808842, 253241428, 618129319, 196912210, 508037758, 560015257, 883115987, 116862314, 649186112, 360458601, 15572513, 350894356, 171226766, 351884425, 151590670, 28456196, 779823636, 89048304, 36410173, 471313270, 351533523, 892873128, 245098264, 409013688, 820620751, 423468103, 355993026, 42136810, 654400734, 590505909, 286989423, 54560148, 567832112, 659621753, 530820121, 263118207, 525245021, 807872067, 729221238, 839784479, 839742886, 76363718, 625139720, 286400316, 243478603, 345748553, 511226407, 338404883, 382861991, 87428315, 650294959, 35605009, 88815737, 876800343, 874957813, 458264071, 362237232, 984386252, 945396153, 526649590, 986363786, 109457012, 979489918, 17695476, 304590266, 232867463, 85846478, 867954947, 602458417, 600462519, 228248737, 162057374, 784423347, 490527645, 422778818, 195678676, 757899527, 817599348, 453190470, 776595907, 177727718, 761707589, 101898771, 84382203, 650331195, 158395821, 223927796, 868569575, 37159193, 544143470, 576361209, 342883032, 368017017, 287424543, 852989243, 739020347, 980843223, 353721093, 650534250, 854973120, 838941092, 171367935, 50287712, 25821417, 587776631, 349674932, 57485441, 168852944, 893326188, 892349312, 509033048, 270362229, 502953510, 543154548, 105279578, 605429941, 804181570, 147239955, 243625084, 372446322, 54446859, 670319618, 939503743, 537861921, 533775515, 750783617, 40159580, 545278847, 825179542, 67843887, 35456043, 901120568, 875084334, 704928730, 655302994, 820696539, 585608990, 558165174, 491478238, 588206869, 572908377, 514973562, 829942035, 361020153, 752249314, 130627544, 904792371, 429130458, 897732470, 776968250, 299277458, 422352754, 449961479, 840294252, 668030239, 111119806, 483746526, 427671629, 86622874, 705608384, 157022628, 791743871, 357378813, 296643356, 132807491, 267377408, 109276119, 221316006, 839226536, 935157849, 522443763, 889966700, 428203157, 133909913, 75894103, 285648044, 947896940, 685564027, 456704025, 55154740, 831870080, 293425487, 424113548, 283105885, 333210749, 447210999, 261210723, 106056475, 191486187, 27774089, 567421291, 492000161, 559290254, 932447181, 781171669, 133554956, 500608167, 45801002, 676588086, 208063299, 409258328, 159754318, 735034107, 166709838, 558583657, 728021088, 620367716, 159355472, 153516815, 128432866, 262968767, 918184000, 218305393, 392074402, 815463188, 896014788, 716432580, 720270336, 175794174, 931565121, 706308290, 447978613, 44143218, 763254266, 136819710, 947796254, 947822434, 188424601, 666152946, 514409754, 810930880, 210582481, 645357588, 542068302, 3090761, 478790044, 618587521, 94230363, 499782, 296750386, 173452645, 117498938, 774417057, 232883513, 694314651, 477797540, 416513770, 174292690, 758445942, 354911034, 176503116, 728450910, 893903706, 335884626, 59750787, 478600316, 875246426, 480380030, 551603116, 524477732, 236868821, 95462985, 280879191, 982869783, 317788254, 176274759, 787038454, 853650250, 265880620, 735731646, 113328955, 776524873, 288677549, 312646570, 619800552, 528881106, 910456692, 620302954, 910641127, 609983783, 761667398, 216939780, 775911695, 366100988, 829097186, 238834815, 542089438, 977085124, 935991314, 398648898, 320999397, 982305958, 707521469, 263938801, 873391271, 89261916, 230520537, 349352841, 943138817, 935149671, 58493165, 34798487, 49111081, 919970664, 203069278, 779227920, 163244519, 75304122, 771692676, 745062009, 422655771, 43882372, 718936336, 884899753, 986251912, 533347647, 62989663, 233038929, 749741439, 310799637, 612647040, 763407535, 810314808, 560490087, 272221068, 717872468, 838916518, 616994025, 301057324, 552549322, 827345410, 597592827, 607804784, 765414633, 825928836, 947489953, 915134151, 434373855, 869351660, 399543711, 12701348, 527717450, 422316600, 105907025, 450639547, 102767932, 64927239, 330269896, 617082181, 577026905, 445140078, 77818708, 373975693, 130342298, 43649459, 569008355, 137535234, 830817878, 135792920, 70847234, 768369869, 594640690, 967385014, 369493725, 162679289, 486553556, 796315921, 502878031, 200840560, 6867048, 272402289, 95676989, 496321260, 311574227, 334523653, 21964598, 268334882, 917434845, 346208520, 346188007, 721621377, 986679467, 505750213, 510716609, 30197571, 434430412, 433120538, 288406188, 145800914, 677148559, 745454889, 635251199, 147846900, 407144104, 810166271, 388917138, 696129640, 693044164, 284439669, 246090834, 258335161, 358069373, 878017124, 860564156, 827540844, 678186310, 264422227, 757943100, 971883134, 718877125, 896463581, 977374747, 796870911, 48430310, 488144299, 651175618, 576164579, 100822180, 249958732, 537374795, 583795941, 854393224, 264594887, 841091105, 679162063, 510058232, 751182048, 202094598, 849587474, 394433324, 332021570, 512574572, 112547659, 284965143, 950507329, 164197917, 413933258, 442818164, 256723915, 778824024, 683806567, 680345933, 27440215, 170065058, 464495434, 8174354, 768304408, 749452707, 75881752, 175598108, 484691018, 713082650, 697986031, 421843956, 506153085, 61830166, 55819690, 624825292, 158106232, 395409737, 253556416, 216037926, 533770970, 203570639, 349572685, 413478625, 499362242, 500621017, 572373670, 798398930, 929732704, 983884556, 966821658, 592430373, 790052392, 49933947, 733265923, 578953612, 471614028, 153093088, 669287065, 724533551, 157503015, 925593363, 2562202, 574625299, 243021423, 669175002, 864812543, 197397755, 746610101, 129879513, 852411332, 790295362, 36822049, 332804847, 83374616, 281113515, 807036282, 912799082, 838644885, 273289828, 195608626, 78545181, 373807994, 930586987, 137190747, 632216364, 696061079, 533392578, 792193516, 665545727, 158870233, 544296986, 403244445, 186809265, 255261639, 807548105, 215245367, 553877235, 310297943, 605370907, 650614134, 801934671, 118598961, 17314731, 588445499, 660330077, 263271699, 471293923, 210451126, 597575970, 26732492, 743841127, 10232161, 198082544, 661538152, 959895711, 812929775, 431008506, 205311624, 441913554, 974583034, 752492230, 910623876, 693375680, 965301472, 486520227, 317018242, 521808008, 843169718, 446050690, 937976859, 887283652, 197681567, 230522693, 677826221, 882945225, 33517339, 89309255, 968613027, 572996072, 172264065, 713096401, 759680328, 291358368, 744867256, 113504955, 212516562, 234163831, 553790070, 697710598, 291485458, 188968196, 422042779, 756841058, 525074347, 989020571, 791267689, 867507307, 423078903, 683167407, 971678608, 339608094, 528460054, 844483723, 84332458, 641015611, 67099601, 432879693, 929209828, 678761464, 291709749, 305246885, 148997125, 907524713, 135247374, 759645822, 740055526, 138688972, 165024031, 587907345, 525113773, 966551774, 813028581, 277638769, 129980885, 651309423, 578372491, 804686832, 664852026, 780560250, 496821381, 355049725, 404829672, 72751850, 952118131, 312612755, 803777516, 27034534, 380948712, 859115776, 225807005, 17274975, 324220863, 861694996, 374835656, 850153718, 178675515, 850662254, 528205456, 164957117, 314100553, 910342402, 174817754, 402763588, 137876639, 80241474, 240143253, 926841231, 103690150, 421131611, 742620942, 547492392, 751234021, 492329383, 706174821, 264974381, 503372884, 662369153, 408591894, 704378551, 450234389, 824584291, 263068586, 963488722, 89309656, 74085122, 385714021, 743380790, 503007609, 765717385, 794757329, 116422220, 425095671, 503450170, 948738769, 645801995, 287858136, 935386654, 221639463, 208754090, 978077665, 289871637, 316811143, 927263656, 925798480, 887594807, 240967815, 347177587, 31960501, 125540428, 812007457, 879647087, 199303090, 320208571, 20047837, 254443093, 623393730, 334911111, 145967205, 353024820, 430171478, 451530625, 331134934, 717336017, 298173968, 336499547, 730706454, 734231188, 319604168, 986176024, 127470054, 421976602, 244196708, 469299930, 88253188, 678550190, 836295741, 480506497, 793695956, 516889194, 419931769, 17683315, 447256842, 966679630, 308604283, 752962159, 210565051, 897603219, 22938628, 635906629, 859253926, 218138286, 986893231, 908764670, 959206504, 182850359, 953065442, 830702870, 345792201, 864306267, 575203033, 864397080, 138448490, 811333692, 876154450, 207196033, 272311454, 913578976, 47768411, 575913746, 667121261, 161818201, 271134179, 542178756, 397577193, 191351580, 724764194, 155420866, 136048183, 80243504, 514833159, 990273470, 214900497, 957229199, 213336866, 14363964, 226620404, 215138174, 831549299, 121490821, 71435121, 125854672, 630828794, 595589904, 692730832, 66343515, 78941441, 186558661, 431050343, 23540743, 109396764, 82727711, 887464126, 953490157, 413794494, 935487757, 625077081, 245238790, 19517404, 205049005, 715216840, 460353518, 29547188, 717288331, 127529996, 796069773, 996475736, 456103432, 786895056, 459640035, 974607917, 35503757, 190084139, 526284700, 474206026, 38643750, 680299255, 592938206, 212383939, 214466118, 934447964, 402982382, 30980638, 332968289, 592465564, 950897322, 692376203, 502282985, 786955038, 936530984, 174695016, 25102999, 104271019, 427755998, 190885770, 309726754, 149449439, 982333407, 947882308, 103478451, 241786040, 877452822, 537787152, 440837566, 374870012, 109133968, 331560543, 210409087, 302567286, 899319305, 777852406, 19990946, 386977829, 212788810, 59592917, 32216712, 781777622, 632791607, 888916009, 630379810, 47306892, 246388713, 76352747, 35253777, 695362768, 623972602, 732528470, 658802148, 74502360, 777534208, 461501935, 815114743, 267443112, 871536921, 21874704, 722182130, 804242323, 752423345, 449264785, 136316318, 60985765, 69835606, 484430295, 755794926, 519299887, 815297941, 837080840, 125214215, 733684226, 933437062, 346928022, 760097748, 456798938, 603550467, 675243412, 390399928, 937002588, 291565964, 215246279, 961995728, 54866207, 808820787, 164333408, 558892469, 298149860, 908874063, 570609321, 761666499, 356505249, 816356874, 518511913, 310655589, 170166008, 611113292, 169537764, 486729845, 912208287, 119772774, 374437729, 552018058, 805749567, 711616773, 796451542, 173482991, 511842254, 79965717, 525704749, 81124280, 79282620, 190126775, 957070684, 85424340, 642083545, 557095026, 45474999, 83728117, 437665466, 848327214, 907834199, 720355563, 711298674, 862557727, 17101484, 929873543, 386653062, 237221632, 707223022, 553015781, 496876894, 512396281, 720933961, 187895152, 754588014, 434896137, 244306550, 67023877, 778448011, 304946752, 447725633, 652993411, 265310082, 116428975, 924365978, 426424914, 733319772, 324241704, 764839449, 874571452, 81266867, 113603122, 190359531, 725867973, 354822109, 681211349, 727187198, 642998670, 109466639, 75574659, 354501262, 977739842, 199347607, 450084648, 464471853, 79685201, 595236940, 137349344, 134595183, 944715854, 498412534, 654228421, 30428498, 172738178, 591251736, 488717424, 144813786, 857064427, 718550908, 118456934, 626073824, 919921121, 755288980, 441889513, 529435229, 758275201, 848063827, 843967355, 28348993, 29155860, 912652888, 249424637, 375843958, 852358429, 807076793, 96805707, 782737062, 722525003, 460141120, 17926143, 740203267, 188562356, 977810082, 786651955, 766557826, 224283764, 759221877, 357019540, 174475456, 128216318, 733620925, 724002520, 25869296, 427952339, 825572784, 982917025, 225590981, 678091909, 872693296, 54823948, 59638889, 226620743, 18194464, 257611941, 400812145, 625453443, 492000265, 152239436, 900381884, 528054672, 368427783, 925346721, 288175789, 390423721, 516951878, 696676198, 987470025, 833055671, 571463817, 124216397, 617854032, 503941194, 641477977, 987498650, 947862596, 296589184, 553552793, 713332667, 65935983, 107827214, 453671716, 824548517, 744386239, 52604867, 218414240, 947308987, 216835933, 633253188, 279895683, 617201196, 922941047, 159597089, 8897606, 608249589, 428021099, 107583179, 789339999, 762773996, 807492635, 908432985, 791219964, 130968649, 810382722, 963625359, 600060759, 271541766, 655777249, 791416038, 987232136, 650737730, 691966239, 668057441, 14411932, 972550152, 473229202, 385076961, 626678298, 283704863, 575560817, 111170545, 803246712, 411740568, 359112889, 149672257, 363848504, 760037342, 985757389, 619177091, 290635517, 298331879, 399406497, 671464861, 23298153, 207670560, 4229427, 376463886, 811492921, 188973346, 818822992, 544735935, 623570515, 566327093, 521402410, 680005857, 345332159, 842783461, 324780807, 713322861, 506916981, 517110925, 873297390, 250545414, 960186298, 236530170, 951645240, 744062338, 151639897, 302376908, 64113920, 703747371, 111574874, 169065276, 301066768, 398453210, 269752482, 771106673, 696480942, 95780439, 395423448, 244882480, 157518089, 945256949, 341219264, 79230097, 474508588, 559091776, 706208587, 42096873, 34603170, 616334572, 108067268, 516916696, 259313491, 731468557, 641563156, 989872207, 729616597, 964497100, 360379612, 552428990, 724475363, 994947059, 433933642, 831084366, 85263735, 157085280, 245950594, 250721295, 568624141, }; int inverse(int a){ int b=MD; int u=1; int v=0; int s,t; while(b){ t=a/b; s=b; b=a-t*b; a=s; s=v; v=u-t*v; u=s; } if(u<0){ u+=MD; } return u; } unsigned a[10]; unsigned b; int main(){ rd_init(); for(int c;c=*rp++-'0',c>=0;){ ++a[c]; ++b; } ulong z=1; rep(i,10){ z=z*fac[a[i]>>7]%MD; reps(j,a[i]&~0x7f,a[i]){ z=z*(j+1)%MD; } } z=inverse(z); z=z*fac[b>>7]%MD; reps(j,b-1&~0x7f,b-1){ z=z*(j+1)%MD; } z=z*(b-a[0])%MD; wt1(z); _exit(0); }