QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#680787 | #5301. Modulo Ruins the Legend | wzxtsl | AC ✓ | 25ms | 3708kb | C++23 | 888b | 2024-10-26 22:42:42 | 2024-10-26 22:42:43 |
Judging History
answer
#include<bits/stdc++.h>
#define int long long
using namespace std;
//板子 这里求出的x,y是方程ax+by=__gcd(a,b)的解
int exgcd(int a, int b, int &x, int &y) {
if(b == 0) { x=1; y=0; return a; }
int gcd = exgcd(b, a%b, y, x);
y -= (a/b) * x;
return gcd;
}
signed main(){
int n,m,x;
cin>>n>>m;
int sum=0;
for(int i=0;i<n;i++){
cin>>x;
sum+=x;
}
int a=n;
int b=(n+1)*n/2;//换个元好看一点
int bas1=__gcd(a,b);
int bas2=__gcd(bas1,m);
int k,y1;
int gcdd=exgcd(bas1,m,k,y1);
int ans=sum%bas2;
k=(k*((ans-sum)/bas2%m))%m;//这里每一步要对m取模,防止爆int
int s,d;
int w=exgcd(a,b,s,d);
s=((s*k)%m+m)%m;//这里控制答案为正,同时防止爆
d=((d*k)%m+m)%m;
cout<<ans<<endl;
cout<<s<<" "<<d;
return 0;
}
詳細信息
Test #1:
score: 100
Accepted
time: 0ms
memory: 3640kb
input:
6 24 1 1 4 5 1 4
output:
1 15 19
result:
ok ok
Test #2:
score: 0
Accepted
time: 0ms
memory: 3696kb
input:
7 29 1 9 1 9 8 1 0
output:
0 0 0
result:
ok ok
Test #3:
score: 0
Accepted
time: 0ms
memory: 3628kb
input:
1 1 0
output:
0 0 0
result:
ok ok
Test #4:
score: 0
Accepted
time: 0ms
memory: 3608kb
input:
1 1000000000 963837005
output:
0 0 36162995
result:
ok ok
Test #5:
score: 0
Accepted
time: 0ms
memory: 3684kb
input:
2 1 0 0
output:
0 0 0
result:
ok ok
Test #6:
score: 0
Accepted
time: 0ms
memory: 3688kb
input:
2 1000000000 948507269 461613424
output:
0 410120693 589879307
result:
ok ok
Test #7:
score: 0
Accepted
time: 8ms
memory: 3640kb
input:
100000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...
output:
0 0 0
result:
ok ok
Test #8:
score: 0
Accepted
time: 25ms
memory: 3704kb
input:
100000 1000000000 253614966 278270960 980235895 498158918 928430170 216003119 852570558 948400590 239257296 897053667 294741176 38297441 382677590 406314557 609468973 854148232 314532767 738191551 158215002 5865825 920471826 380037058 356271728 749175327 28319049 208101105 953758995 896570758 521930...
output:
46613 535950000 999089281
result:
ok ok
Test #9:
score: 0
Accepted
time: 25ms
memory: 3564kb
input:
100000 998244353 561002596 498658036 721339539 63377827 532179242 934651519 234198881 490149304 2056307 499913682 427679408 694677560 516580968 300129454 816286800 688594301 183049581 456627420 495848352 273497462 953217060 796225499 207179832 728054671 409492082 25003432 810431468 206421553 5569626...
output:
0 813586357 839886562
result:
ok ok
Test #10:
score: 0
Accepted
time: 21ms
memory: 3640kb
input:
100000 823593588 49428507 531539751 61870891 800048628 775048962 784733848 328557377 689322372 219461104 675220341 766029393 488914111 239397724 96030886 535128775 725148224 781428428 415057434 63184780 813491758 45833062 206477264 794055396 620712453 773776688 121478140 274571586 180906090 39075043...
output:
0 305616340 729780166
result:
ok ok
Test #11:
score: 0
Accepted
time: 25ms
memory: 3616kb
input:
100000 983275893 454625390 806969222 617741665 837404489 938645284 681398122 407211415 331494759 297580058 157522489 86886529 279559123 314433333 128017817 334728209 485708969 389458361 293383056 700448142 179967281 812270136 157507274 455502368 464300877 103838359 833551145 360433787 444681395 7501...
output:
0 539389586 287145104
result:
ok ok
Test #12:
score: 0
Accepted
time: 8ms
memory: 3704kb
input:
99999 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
output:
0 0 0
result:
ok ok
Test #13:
score: 0
Accepted
time: 24ms
memory: 3696kb
input:
99999 238957253 68606395 53811313 95378516 109308150 65279352 125763646 16026342 38880935 116271524 62503327 67732472 195242815 49755462 238084368 145043512 123589025 37521794 124245266 123859798 135679999 133334477 229769662 113059739 78645151 125785473 169825718 204464350 153216471 171447059 23236...
output:
0 499790 0
result:
ok ok
Test #14:
score: 0
Accepted
time: 25ms
memory: 3628kb
input:
99999 1000000000 773048742 726584889 597425040 944388841 710710917 747919780 132563193 839347904 483913695 95381937 7446129 100858470 602901041 590306547 547459370 292951919 853573243 47681567 524669205 506410451 331535043 37436560 637160298 365763694 709388434 793664195 901206820 151514497 60590731...
output:
0 249914721 0
result:
ok ok
Test #15:
score: 0
Accepted
time: 25ms
memory: 3636kb
input:
99999 999999999 888840281 93692296 296589548 949794353 692951502 895294122 782832861 683498634 970358907 294339888 115730051 589123273 183323610 416336076 149941432 475728700 755718434 581889924 74455609 167550374 247523686 688577004 821847350 98065413 360381264 60246844 411759716 395970303 81107563...
output:
2 600343253 0
result:
ok ok
Test #16:
score: 0
Accepted
time: 25ms
memory: 3708kb
input:
99999 846956435 443861489 97608079 615408932 350315819 21503072 644537785 647434913 660201397 764328386 89386723 675552324 471555958 22924647 718972712 671310924 644644002 442364711 572788363 259294822 521396289 518323067 817788234 702381875 151329035 822126647 675021898 725706863 326198548 53571450...
output:
0 582027289 0
result:
ok ok
Test #17:
score: 0
Accepted
time: 16ms
memory: 3640kb
input:
65536 536870912 356781422 423177907 66935958 280088006 500004658 27810831 281774279 427322144 342456096 301115251 518404449 204035995 61213788 69802683 485038115 383425084 432954077 501293754 169471197 437606462 420671984 326793650 423545846 8382353 17064627 88596957 228300006 432517462 190457499 35...
output:
18880 51707904 391638
result:
ok ok
Test #18:
score: 0
Accepted
time: 24ms
memory: 3636kb
input:
98529 598239435 342045580 476244298 80528592 292342059 363596806 222654730 419216010 523306935 583481612 312635139 545799900 235763874 482764637 92014988 5590167 294862363 581675448 414336353 54446376 552730926 158879092 500574752 454231047 489638760 338668170 76998671 266346940 181884899 150769215 ...
output:
2 255618213 0
result:
ok ok
Test #19:
score: 0
Accepted
time: 24ms
memory: 3648kb
input:
98304 849346560 245740016 276857129 794344397 579758780 260038236 667646924 491580243 356606252 196968987 668075896 3625614 640329085 444549122 538085592 327803014 793217244 178467947 278152120 714174981 487229913 710726066 611228557 219432475 663100648 743861434 472376299 140149403 421004513 755851...
output:
37992 262520832 847734179
result:
ok ok
Test #20:
score: 0
Accepted
time: 24ms
memory: 3700kb
input:
98327 982090076 535416248 3637043 529215812 28431360 173561835 31910748 419991764 414939650 921448790 105722892 13473227 60130109 804786887 779396109 330669436 615571716 620065685 857276898 515952716 687358278 819165549 224540409 283151569 127189153 307862443 656307566 394157101 756319276 354969405 ...
output:
39105 490495730 0
result:
ok ok
Test #21:
score: 0
Accepted
time: 23ms
memory: 3632kb
input:
93326 700644945 271553776 112572922 197003342 51054596 539660040 524912558 113000554 152111197 263244784 596694284 238304670 363781015 246981581 138986244 686404762 438061189 451723525 104790834 283339921 209412359 86272150 102171965 603914455 118779628 145964539 581332986 189034249 572855808 358781...
output:
13287 450391276 698698358
result:
ok ok
Test #22:
score: 0
Accepted
time: 25ms
memory: 3612kb
input:
99966 962339360 78619251 20774987 716528749 330519362 465825672 225900238 616161446 628267732 625337286 336889325 902773788 669973173 258642628 614534434 98753811 928045624 407006319 700556347 698651681 336457925 193767817 516165210 958809810 169518488 191490821 111557427 68206018 483681152 23297396...
output:
15129 679452241 55936593
result:
ok ok