QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#168539#5460. Sum of Numbersmendicillin2TL 584ms5124kbC++171.9kb2023-09-08 17:00:352023-09-08 17:00:35

Judging History

你现在查看的是最新测评结果

  • [2023-09-08 17:00:35]
  • 评测
  • 测评结果:TL
  • 用时:584ms
  • 内存:5124kb
  • [2023-09-08 17:00:35]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;

void solve() {
	int N, K;
	cin >> N >> K;
	vector<int> digits(N);
	{
		string s;
		cin >> s;
		reverse(s.begin(), s.end());
		for (int i = 0; i < N; i++) {
			digits[i] = int(s[i] - '0');
		}
	}

	auto add = [&](vector<int> a, vector<int> b) -> vector<int> {
		int nsz = max(int(a.size()), int(b.size())) + 1;
		a.resize(nsz);
		int carry = 0;
		for (int i = 0; i < nsz; i++) {
			a[i] += (i < int(b.size()) ? b[i] : 0) + carry;
			carry = a[i] / 10;
			a[i] %= 10;
		}
		while (a.back() == 0) {
			a.pop_back();
		}
		return a;
	};

	auto test = [&](int mask) -> vector<int> {
		vector<int> diffs;
		int extra = 0;
		int r = 0;
		for (int z = 0; z < K; z++) {
			diffs.push_back((mask % 3) - 1);
			mask /= 3;
			r += diffs.back();
			extra += r;
		}
		if ((N - extra) % (K + 1) != 0) return {};

		int step = (N - extra) / (K + 1);
		int cur = 0;
		vector<int> cnd;
		for (int i = 0; i < K+1; i++) {
			if (step <= 0) return {};
			cnd = add(cnd, vector<int>(digits.begin() + cur, digits.begin() + (cur + step)));
			cur += step;
			if (i < K) {
				step += diffs[i];
			}
		}
		return cnd;
	};

	auto is_less = [&](const vector<int>& a, const vector<int>& b) -> bool {
		if (a.size() < b.size()) return true;
		if (a.size() > b.size()) return false;
		for (int i = int(a.size())-1; i >= 0; i--) {
			if (a[i] < b[i]) return true;
			if (a[i] > b[i]) return false;
		}
		return false;
	};

	int all = 1;
	for (int _ = 0; _ < K; _++) all *= 3;
	vector<int> ans;
	for (int mask = 0; mask < all; mask++) {
		auto cnd = test(mask);
		if (!cnd.empty() && (ans.empty() || is_less(cnd, ans))) {
			swap(ans, cnd);
		}
	}
	assert(!ans.empty());
	for (int i = int(ans.size())-1; i >= 0; i--) {
		cout << ans[i];
	}
	cout << '\n';
}

int main() {
	ios_base::sync_with_stdio(false), cin.tie(nullptr);

	int T;
	cin >> T;
	while (T--) solve();
}

详细

Test #1:

score: 100
Accepted
time: 1ms
memory: 3816kb

input:

2
8 1
45455151
2 1
42

output:

9696
6

result:

ok 2 lines

Test #2:

score: 0
Accepted
time: 62ms
memory: 4156kb

input:

10
1301 6
56328399613959594774559774218276494124991536454496431869449134772679831477279356599352619469813771742358572734317965823527349354276551857226632977613336815474383422853946661428822284645652423563864641261338984158269966469425994769486371736593879954275146732544891889693921182364554588732946...

output:

2861837555106640794797067737879913860686764066159587941287350938727749577629356630565034353414526438507603808735990935008225192080065174423508575377930722196909797866802717925250679901255
1330897896655974774035586406544907434842835048336411271110427836483063457950873824562288934364096546537492367401...

result:

ok 10 lines

Test #3:

score: 0
Accepted
time: 3ms
memory: 4296kb

input:

3
68312 1
97721793232462295468345161395388245623318759168492992575579675893432997968276399269361852215552871434587866112799189725614696256526239439933158479577223186954475137216722241699568491426254779997896288355965839555276546655174417599498493234323661877664997543475525992228661739933395881544363...

output:

165361439370989969611281150911906045608758081895436745302721903170895741831200164992289491213814537683869854746077326282091529052307364873668669947061960472772133388934416763345394409983809105665214082485429685401199520114459892594221344388768178495952936142426649338494017013932243993161711816767032...

result:

ok 3 lines

Test #4:

score: 0
Accepted
time: 6ms
memory: 4416kb

input:

3
104062 2
6586987777965872861989232258194733262765989634859654379877935579528781688159322513128986886481716832258115626748535521126479244461411522889744479186513298679746684345233214226141199846787117661159318966767135455745184384324833645134232699525177668629239933843658643667417337451334591594819...

output:

536246497591460214899497073157707308719964754106858053886979792537707870310253164299747153718261114131636990130350872742851787818427135113617679220183754863021102973854172956224432906133335696002890140207617299467927865340000078212572980076032917286214327823207585568582552662612028254042515906063023...

result:

ok 3 lines

Test #5:

score: 0
Accepted
time: 2ms
memory: 5052kb

input:

3
139639 3
6796297676823528648589397343663999328612414278384367347213637689464348185237425534836886677731351726963453579377613988437426483671299519186839344132333793569544718489728294346989818592279444871423953477919473799463194216678119582972131632322347549538925164854516141164554772823372476647126...

output:

126364763403906564661708542497996384758493064461499142133308596067494936258655259133526434841726196274703766844552726915088706942994746309192813887599486034682622494344506129054929148805249803660505979746418821689885230718372401950523582639142168746487771785553740446005221635828358569536474437471762...

result:

ok 3 lines

Test #6:

score: 0
Accepted
time: 13ms
memory: 4216kb

input:

3
74882 4
34214651312364628656844245717387533432968776973534628295922991352118459564756246556257779312918116552177726519173345828839532314119892538422953191411989526818837499574837984599131437923829691932871927272598159916936847255554115731624229194141184295327556843698221845942155322267254877729895...

output:

652879872016718790343280470756061301445687203441680798826476501917145925778781111109343489062160438478188515389826291555084101569285971285993846457561557667210690487169933469816410296697081463378678731150633158904900018680809858404118923436246875692603950100371337341615443319224405626522868813204392...

result:

ok 3 lines

Test #7:

score: 0
Accepted
time: 21ms
memory: 5124kb

input:

3
191014 5
4625226525489118654543959629348153444699986242632464847423452621546972849227817733763237372239335981427166568676892839618898764121637356149689834276433852165285729163339388526992792556894792278543347578452353389831593643818698478199319882191378795871195868331188637941453446682259469316457...

output:

183433830723962716661960230479245454318025962759914611110498608412928382555357890844482989235397326332530009244441167586569039863115637789245293728629736732433450983262080427109116060046615860768206472546822403232142108561871987242547562597599614404577271199268661821460539766659678709433633532926618...

result:

ok 3 lines

Test #8:

score: 0
Accepted
time: 69ms
memory: 4304kb

input:

3
89585 6
94845874282137954862385693488638122989575112616926699152984211114725742468459969145259337775618857796224956393949274481244989438351268853962294993267143851959948416128442795399969913525879669463929768397987966315181534158658746641933973131881592663842895938779816214825692812493134824556695...

output:

299751945436714405327965382630641151220078087436306886008455290218867774598033154703298350470955635925864103042961309005090519862571207481236797905629359014249368432851738777659221783920211895526401428737190140639519448861544949137222152380658013492841793431645174714140875875011098436373161645837902...

result:

ok 3 lines

Test #9:

score: 0
Accepted
time: 0ms
memory: 3652kb

input:

1000
438 1
2517849689325865499132114642336162462526229452777943938182992956383698881134842963395515712949251433652761697475196628342214595685672144112568956575717136898856177694197933946755524666375993512634793331951161492287212454971511815257823292342711659258415167759313776646368654965574417395231...

output:

748936150458368879147482630159457763028554322942431259314856737377893084493327951133306407733863814927410043574237076571833145300484875759606530375804038146070837054761731126648297282834150805998661305332252023826677983
91742211464580719040769832120828477315449383443456839582655398455396278130875002...

result:

ok 1000 lines

Test #10:

score: 0
Accepted
time: 4ms
memory: 3984kb

input:

1000
84 2
966932289765425941985736948627128913324775123274122997916444286764739984266379596918
70 2
5331446293763416152151916485841778781581747798477137375944877329687691
9 2
634624591
814 2
1988645967814683323112433424295394438122288481686898542983777796753686147185684924621213554165142457245886757...

output:

18826500994871756013649266195
295310256670327308687194
1849
284825795169730623800202989098038033639343406140577208629162918151307022180084222616119982223024776344842017851725895275795084612484054272282348654966167150019465644108270898181205721199473080438042040896310370198851400852136186082174700276...

result:

ok 1000 lines

Test #11:

score: 0
Accepted
time: 10ms
memory: 3688kb

input:

1000
339 3
9163225412581255315266828923167711137296521138867213374363794548283572234447976575396136427848756366754713547897594499817281488658226795963345311956629297357965219254498864379562223818165453699818569782568512899896568369453633434563347531526352315344759793546252139786416256297532237728985...

output:

17320085336505381033402042979863864748728993071457871710902369621896971390566049928087
303414409729053513885481240687
17597270
15669
1283838053980036200051841389000892463151272030330831803493589
1560322045162299829921416791329484329527
4243531807036148642992251191455715323698841515530953264341379464...

result:

ok 1000 lines

Test #12:

score: 0
Accepted
time: 21ms
memory: 3788kb

input:

1000
138 4
484962586115279453369996194457342634952357271168328178643276864673769897191563579592486195296811317555573934449368611989129724634563816994
72 4
128332513898356243222125494995361845213718227422737651848258755993533754
509 4
157277971115829627944882928415913969371873221184118644471116597521...

output:

12240882688956884074347387382
492451909770639
822679326774387887159074589000615958812996169576626138719408594959416426185390946590163427112055727430
2240348806954907408
55289
31
6638966544983086450404
954908126261241071739251557216722850148689367943722917283856526
12389004424425085081876044746137529...

result:

ok 1000 lines

Test #13:

score: 0
Accepted
time: 48ms
memory: 3716kb

input:

1000
89 5
69438349821299168772632819791716137437477522198815899846141116897952323821244348732925449
49 5
5889925976819593156543537943511758299922491265356
351 5
4343528429373426946213764569798664427197417764112565896631832479923611211154524299924577328382895753939939933785586437523111528231833146826...

output:

1514411005214023
560878144
139280935595065268997619636165098315240696582009977469076204
100547742592864930626563
9976094391917762591160786
1072095014047438838739191375073941680553329306387310764240430581213284
2211788963204
10209378342191121234432686989131231741183
1420668185218211968876440875464556...

result:

ok 1000 lines

Test #14:

score: 0
Accepted
time: 148ms
memory: 3752kb

input:

1000
43 6
5844292497766536592888266559658669254549127
272 6
875767433578519253929757343897994239529777881897369786622734168564232875831663914511692767612286671657191831587116255734916311975566368414384247326542724246269965337592948152923859139638134518832561879968791791589126584487321631197726734325...

output:

6154169
3475115553294555872638317955874434650553
616620918284089103050758938345
8490
102
113474518346149619428778073821
561994771146339673227
13181323305424
16397269870357232236304815
2417817012
33101632846121096516591083297513852011
172328683555
220056612922104204636364423396993576
28
7378221003505...

result:

ok 1000 lines

Test #15:

score: 0
Accepted
time: 5ms
memory: 3660kb

input:

5000
12 1
183744912679
18 1
761155564586681444
47 1
96574485488841781274987872443894375593438622576
29 1
51313747855158576267169387271
81 1
443653483264685831272245613499285318249166725564992136793163851135234493345145749
25 1
3288249984449175593731761
11 1
55525197952
6 1
411919
16 1
11326467161667...

output:

1096423
1347837008
969018379864435219897563
589404647938856
51090913318605376291075696584421876970665
3463843716210
253477
1330
27493252
1113803147703908
3900467273288018945633
6414811
50867237
55115144
70546019964924451128720417
793648429077032195922502111435
5
258143
966891654415068913735563
17579...

result:

ok 5000 lines

Test #16:

score: 0
Accepted
time: 5ms
memory: 3636kb

input:

5000
46 2
8212536675169511928961832612298422182429982464
51 2
861148619886856437488181241332554422968528819973893
4 2
3478
6 2
879938
4 2
4714
42 2
926931759457489733744881718485756424443968
32 2
25677341219183874425744698698371
66 2
177983781813781498444255447929914195199314318937366452745281852376...

output:

3172397930111713
183965203221985080
49
224
25
275787049206900
48763482164
16261997262302616768249
19982325224508007193801238310
3174913023088372107514
25920596635487108195032039843057883132334
11396
2112880777743110
185911568274330818493851890118
371944516940049144759
61418792795891
1460800892
14558...

result:

ok 5000 lines

Test #17:

score: 0
Accepted
time: 24ms
memory: 3656kb

input:

5000
28 3
4621928549729124473993183163
8 3
88792768
61 3
5153158356272173598747354647267326426331162898159415114172265
11 3
65462892826
51 3
369294122593518362511529514656795562664363252184119
65 3
12239314591558374322575335722353798719534141487341259932879618584
40 3
7857535932272596919376668891218...

output:

15749781
262
4599904635609647
2200
9705498081615
26596954242549229
25342372992
148388
188
3768
200641448966329161285539157109537707149246808740363170468738300
2335688219000854660582
16889216521836982723
2518572624737948
132008
433503556
3188407173368256
49
312656639703304897787324542328105038052
300...

result:

ok 5000 lines

Test #18:

score: 0
Accepted
time: 50ms
memory: 3864kb

input:

5000
41 4
35484512232546673623581937481298218847529
55 4
8242163441243471272492482949448942949882934236597688943
54 4
563562916327834173784336895782276221993223255832511687
72 4
763787315393874816486711266437185871527211769152552286626589741378637764
41 4
13148917525427757834324873525661232615915
10...

output:

351303825
240284370083
185211825093
1155296244848558
308221946
240
2597010559
3600018779767076
276
19730979737419711
16973217397294714
85163714356647814002
219
1534833234346314081494847671843968960194902
14173
13915
40
365840279
10
298882042
242584
27637391201921
74
20
2811235961
119826285101507
266...

result:

ok 5000 lines

Test #19:

score: 0
Accepted
time: 170ms
memory: 3660kb

input:

5000
9 5
177349241
14 5
77815488298414
40 5
3195118464719744127363963845431832127416
24 5
615126783657653551564815
10 5
8677674114
32 5
66565433529366965737728562577462
12 5
793517957977
39 5
556474596788562748452744137867656197117
43 5
4745732661562535351532784948531247997983954
38 5
52615779393999...

output:

92
1012
14714201
28992
204
957254
382
16227333
53854748
10297320
153
968
90
64
162045154388
43532
248773077397
253
100296
10260
404527405284009430805773441
6563606
826388
713
154574571372
23
6838
1528981717
4609713
1095854775000
16969765
67
36
1237259346025838017041693
3686780
7936
4357
125366
56229...

result:

ok 5000 lines

Test #20:

score: 0
Accepted
time: 504ms
memory: 3892kb

input:

5000
81 6
754687899122417859346152515668258477537711784897898938645364555354786193129462774
7 6
6257755
25 6
6342845171864536923737254
67 6
7422648166646588394778464634715795861296556284389963227542898744682
34 6
9574119846617489672849857197171986
27 6
456563562193229267786466569
39 6
29873173624595...

output:

1299782424427
37
13525
20803460463
334823
29219
1225424
16624
204
704559366
134527039
119
353
2179
6095
924
64
8353712
379
81889
18784706556007706024780002441
20212
166
4290117
60016693
461
44
230
74930210162165530
166044
3836063
6573650978082236740001
1314
77327
38802544
727088987
1272
831480265642...

result:

ok 5000 lines

Test #21:

score: 0
Accepted
time: 185ms
memory: 3796kb

input:

20000
5 4
45355
22 4
1587489983773162197956
9 4
368653813
8 4
99914465
5 4
66444
8 4
39224749
6 4
674571
6 4
528349
5 4
53496
6 4
324574
8 4
24824972
5 4
85787
18 4
552861362561966773
7 4
3143232
5 4
76795
7 4
5215948
6 4
763794
12 4
278788685938
7 4
6358446
12 4
178792248272
6 4
523699
5 4
28869
10...

output:

22
52820
160
173
24
121
66
49
27
43
137
35
14659
45
34
79
63
1231
99
599
52
33
359
19
74
193
82
177
21
34
3103
949
72
32
1375
22
240
350
22
580
314
3152
17241
125
27821
45
213
12022
89
115
4335
688078
197
19
101612
7619
84
23
59
69
1267
161
3745
33092
102
4636
58
227
62
77
3075
30
94
1385238
41682
2...

result:

ok 20000 lines

Test #22:

score: 0
Accepted
time: 584ms
memory: 3492kb

input:

20000
16 5
5237537693778188
9 5
445935661
7 5
1689432
6 5
293798
7 5
3192321
9 5
886726528
7 5
6971515
8 5
83381492
8 5
81422441
6 5
253726
6 5
733781
9 5
747778477
6 5
799245
6 5
844949
7 5
7584613
12 5
286295278464
12 5
752838846198
29 5
72283538276773662819377612921
9 5
149976512
6 5
871418
6 5
5...

output:

1862
151
42
38
30
142
43
74
53
25
29
193
36
38
43
360
384
273362
116
29
31
34
202
327
225
36
197
181
93
260
336
32
676
36
37
89
485
54
280
11061
978
112
40
400
42
156
158
25
68
412
30
23537
54
54
296
430
48
32
237
47104
110
25
186
286
2370
199
50
49
37
16
13722
4284
862
147
614
37
85
315
335
732
56
...

result:

ok 20000 lines

Test #23:

score: -100
Time Limit Exceeded

input:

20000
8 6
14191146
9 6
265591839
10 6
7333496958
7 6
9276593
21 6
898475263978241823989
15 6
835899945145598
9 6
878321716
7 6
4285391
8 6
42872131
12 6
219293972115
9 6
798517396
10 6
3929468537
17 6
86848669378932128
15 6
598621375466726
11 6
76879267192
8 6
15473735
8 6
96265647
8 6
14397167
9 6
...

output:

36
75
156
41
4667
938
61
32
37
132
91
128
1709
572
208
44
63
47
43
39
76
39
37
78
31
376
152
63
35
402
81
685
1601
76
120
38
44
63
708
35
64
330
86
105
31
41
44
52
129
34
6208
163
261
213
33
387
83
41
147
38
37
46
33
1674
32
37
62
59
443
408
46
441
161
64
49
49
69
25
41
80
78
410
2596
36
43
74
1337
...

result: