UOJ Logo

NOI.AC

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#187391#3348. 三角形stonesx100585ms1192kbC++11673b2023-10-02 09:13:262023-10-02 12:02:38

answer

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll MOD = 998244353;
ll n, lsum, usum;
int T, k, lower, upper;
ll calc(ll last, ll k)
{
	ll first = last - k + 1;
	ll sum = ((first % MOD + last % MOD) * (k % MOD)) % MOD;
	return sum & 1 ? (sum + MOD >> 1) % MOD : sum >> 1;
}
int main()
{
#ifndef ONLINE_JUDGE
	freopen("data.in", "r", stdin);
	freopen("data.out", "w", stdout);
#endif
	scanf("%d", &T);
	while (T--)
	{
		scanf("%lld%d", &n, &k);
		upper = k >> 1, lower = k - upper;
		lsum = calc(n * (n + 1) >> 1, lower);
		usum = calc(n * (n - 1) >> 1, upper);
		printf("%lld\n", (lsum + usum) % MOD);
	}
	return 0;
}

详细

小提示:点击横条可展开更详细的信息

Test #1:

score: 5
Accepted
time: 25ms
memory: 1188kb

input:

100000
89 166
441 375
476 304
827 1204
611 280
275 237
411 682
873 1091
785 799
437 781
169 38
743 5...

output:

650637
36430439
34416600
411363456
52245480
8947776
57486121
415444781
246023079
74421513
542317
146...

result:

ok 100000 lines

Test #2:

score: 5
Accepted
time: 23ms
memory: 1192kb

input:

100000
845 629
494 334
468 222
327 9
321 552
687 1048
301 210
660 1039
370 367
309 413
366 244
601 1...

output:

224462689
40726290
24299454
481328
28363416
247037704
9502185
226025169
25087846
19674545
16327870
1...

result:

ok 100000 lines

Test #3:

score: 5
Accepted
time: 23ms
memory: 1192kb

input:

100000
833 299
144 62
351 452
581 181
431 576
616 269
181 40
249 162
992 495
601 676
905 1792
481 26...

output:

103714621
641886
27792576
30541461
53416512
51019184
654840
5015601
243495327
121972032
733044480
30...

result:

ok 100000 lines

Test #4:

score: 5
Accepted
time: 24ms
memory: 1188kb

input:

100000
745 755
645 559
41 44
175 347
851 1242
956 1716
409 419
776 1433
677 1060
284 438
77 78
327 2...

output:

209380181
116201469
36520
5283596
449343801
783421782
35001893
430946836
242634000
17615922
229749
1...

result:

ok 100000 lines

Test #5:

score: 5
Accepted
time: 25ms
memory: 1192kb

input:

100000
503 769
425 343
518 929
545 514
807 4
808 155
921 902
645 641
594 1098
113 80
81 78
521 946
8...

output:

97134756
30948159
124421461
76269633
1302496
50591435
382353741
133233935
193406112
509200
254397
12...

result:

ok 100000 lines

Test #6:

score: 5
Accepted
time: 27ms
memory: 1192kb

input:

100000
467 502
854 1171
201 380
993 1486
37 69
632 1182
410 784
401 370
585 18
486 678
15 26
376 425...

output:

54677589
426672720
7640280
732083101
46093
235710894
65741928
29714145
3079953
79955862
2769
2999764...

result:

ok 100000 lines

Test #7:

score: 5
Accepted
time: 32ms
memory: 1188kb

input:

100000
601961 673582
75139 143625
471645 753991
871374 14321
113773 37632
90643 5162
475254 93434
25...

output:

597790038
891473235
368494766
45291804
865695213
180602110
578951638
888455728
964045278
729130597
8...

result:

ok 100000 lines

Test #8:

score: 5
Accepted
time: 29ms
memory: 1192kb

input:

100000
543783 894939
277681 2554
547101 257927
290705 556876
644267 589714
189473 188735
187152 1569...

output:

672519262
476000131
648857306
954861195
16356940
234477823
963200017
477140476
25871145
464498449
18...

result:

ok 100000 lines

Test #9:

score: 5
Accepted
time: 30ms
memory: 1188kb

input:

100000
851773 1270298
586811 650788
636793 305068
882703 378027
496853 979141
310290 360212
669561 5...

output:

859713793
948208323
544828267
206154145
92537631
797787173
331062808
235770009
292600790
126912978
7...

result:

ok 100000 lines

Test #10:

score: 5
Accepted
time: 27ms
memory: 1188kb

input:

100000
162617 142303
236467 207934
945721 1363939
109101 49212
368225 46159
513921 153574
677633 111...

output:

882542429
78712194
662629411
413312976
488607627
962046953
313584608
442779335
158135046
970076218
8...

result:

ok 100000 lines

Test #11:

score: 5
Accepted
time: 22ms
memory: 1188kb

input:

100000
995685 1406564
850649 950717
175459 148907
443305 725266
179949 338845
581646 243078
781157 1...

output:

599105178
197119548
746353934
92487734
821115119
642491259
908517968
696942370
421490200
381753068
6...

result:

ok 100000 lines

Test #12:

score: 5
Accepted
time: 28ms
memory: 1192kb

input:

100000
573994 893742
178843 179004
730201 873680
981944 230224
85235 77162
763141 975798
105105 1568...

output:

368883296
951531253
477751274
442365459
632206699
524267943
905167892
71082282
851279694
684133190
2...

result:

ok 100000 lines

Test #13:

score: 5
Accepted
time: 34ms
memory: 1188kb

input:

100000
2009809 266677
395866901 340815641
514801 821642
108251389 119464487
220583035 114307171
2389...

output:

814983083
79198508
609118429
605042899
665534534
921376446
956511973
795383875
894638301
258360166
6...

result:

ok 100000 lines

Test #14:

score: 5
Accepted
time: 35ms
memory: 1188kb

input:

100000
1246300 1456942
138283601 177040564
30180601 2712206
86605786 52103991
30001641 58277856
2152...

output:

531772451
859403240
470971890
60633799
657282218
514928831
438266462
731300122
43581890
317115683
39...

result:

ok 100000 lines

Test #15:

score: 5
Accepted
time: 43ms
memory: 1192kb

input:

100000
457852177 760091270
91407751 146603016
91545751 23734792
368731021 538793612
772240015 832972...

output:

167148338
483824005
900535372
287926010
771210394
605197932
213812076
80943491
192109138
585679723
9...

result:

ok 100000 lines

Test #16:

score: 5
Accepted
time: 35ms
memory: 1188kb

input:

100000
251719557 81358081
414403421 31621201
780414361 533723105
167114137 133562881
135610284 16657...

output:

900361723
734429824
159959425
202856007
465174289
324266409
935316449
169239828
596306619
485935622
...

result:

ok 100000 lines

Test #17:

score: 5
Accepted
time: 31ms
memory: 1192kb

input:

100000
240540559 71092305
36119591 17629267
782840000 705383017
97162465 91793944
45398540 54805606
...

output:

179309721
674900735
348263612
47091406
973351445
108994441
471831745
864827869
172658503
873011701
8...

result:

ok 100000 lines

Test #18:

score: 5
Accepted
time: 32ms
memory: 1192kb

input:

100000
20616806 30061824
423396513 81689133
52619584 35649010
689113951 99239986
118598140 184079153...

output:

351370536
303624150
835249469
538532477
405824062
12451716
267688161
70526293
51822007
535793535
748...

result:

ok 100000 lines

Test #19:

score: 5
Accepted
time: 27ms
memory: 1188kb

input:

100000
123528861 110640937
569279621 11449153
368995537 103770926
10855153 21449406
440506869 290009...

output:

73793847
200612577
180530131
123298175
33629745
921758833
457262765
167689985
77412340
316680560
258...

result:

ok 100000 lines

Test #20:

score: 5
Accepted
time: 33ms
memory: 1192kb

input:

100000
142024088 54281158
484927297 150799809
705181491 79379
237015637 118836710
22106789 14444198
...

output:

757252018
175072338
242936630
590008114
252802776
348426456
740521082
704133182
601104935
92284722
8...

result:

ok 100000 lines