QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#175759#5460. Sum of NumbersrealIyxiangTL 492ms5508kbC++143.5kb2023-09-10 22:36:522023-09-10 22:36:52

Judging History

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

  • [2023-09-10 22:36:52]
  • 评测
  • 测评结果:TL
  • 用时:492ms
  • 内存:5508kb
  • [2023-09-10 22:36:52]
  • 提交

answer

#include <bits/stdc++.h>

#define eb emplace_back
#define ep emplace
#define fi first
#define se second
#define in read<int>()
#define lin read<ll>()
#define rep(i, x, y) for(int i = (x); i <= (y); i++)
#define per(i, x, y) for(int i = (x); i >= (y); i--)

using namespace std;

using ll = long long;
using db = double;
using pii = pair < int, int >;
using vec = vector < ll >;
using veg = vector < pii >;

template < typename T > T read() {
	T x = 0; bool f = 0; char ch = getchar();
	while(!isdigit(ch)) f |= ch == '-', ch = getchar();
	while(isdigit(ch)) x = x * 10 + (ch ^ 48), ch = getchar();
	return f ? -x : x;
}

template < typename T > void chkmax(T &x, const T &y) { x = x > y ? x : y; }
template < typename T > void chkmin(T &x, const T &y) { x = x < y ? x : y; }

const int N = 1e6 + 10;
constexpr ll B = 1e16;

int n, K;
string num;

vec tnum;
const bool operator < (const vec &x, const vec &y) {
	//cerr << "!COMP: " << x << " " << y << endl;
	if(x.size() != y.size()) return x.size() < y.size();
	per(i, (int)x.size() - 1, 0)
		if(x[i] != y[i]) return x[i] < y[i];
	return 1;
}

ll pw[20];

void compose(vec &x) { // zhengxu 1212120
	vec ret;  reverse(x.begin(), x.end()); // 0121221
	rep(i, 0, (int)x.size() - 1) {
		if(i % 16) ret.back() = x[i] * pw[i % 16] + ret.back();
		else ret.eb(x[i]);
	} x = ret;
}

void depose(vec &x) { // 01212121
	//reverse(x.begin(), x.end());
	vec ret;
	rep(i, 0, (int)x.size() - 1) {
		rep(j, 0, 15) ret.eb( x[i] % 10 ), x[i] /= 10;
	} while(ret.size() && ret.back() == 0) ret.pop_back(); x = ret;
}

vec getp(int l, int r) {
	vec ret; l--, r--;
	rep(i, l, r) ret.eb(tnum[i]);
	compose(ret);
	//cout << l << " " << r << " " << ret[0] << endl;
	return ret;
}

void operator *= (vec &a, const vec &b) {
	a.resize(max(a.size(), b.size()) + 3);
	rep(i, 0, a.size() - 1) {
		if(i < b.size()) a[i] += b[i];
		if(a[i] >= B) a[i + 1] += a[i] / B, a[i] %= B;
	} while(a.size() && a.back() == 0) a.pop_back(); 
}

vec get(const vec &pot) {
	int cur = 1; vec ret;
	//for(auto v : pot) cerr << v << " "; cerr << endl;
	for(auto v : pot) {
		int l = cur, r = l + v - 1;
		//cerr << l << " " << r << " " << getp(l, r) << endl;
		ret *= getp(l, r);
		cur += v;
	} //cerr << "!" << ret << endl;
	return ret;
}

void solve() {
	cin >> n >> K >> num;
	//reverse(num.begin(), num.end());
	vec().swap(tnum);
	for(auto &v : num) v -= '0', tnum.eb(v);
	int len = n / (K + 1);
	vec ans; bool fl = 0;
	auto upd = [&](const vec &ret) {
		if(!fl) ans = ret, fl = 1;
		else chkmin(ans, ret);
	};
	auto runit = [&](int chk) {
		int t = 1; rep(i, 1, K + 1) t = t * 3;
		auto calc = [&](int x) {
			int ret = 0; rep(j, 0, K) ret += x % 3 - 1, x /= 3;
			return ret;
		};
		rep(s, 0, t - 1) if(calc(s) + len * (K + 1) == n) {
			vec pot(K + 1, len); int x = s;
			rep(j, 0, K) pot[j] += x % 3 - 1, x /= 3;
			int tfl = 0;
			rep(j, 0, K) if(pot[j] <= 0) tfl = 1;
			if(tfl) continue;
			rep(j, 0, K) tfl |= pot[j] == len + 1;
			if(chk && !tfl) continue;
			if(!fl) fl = 1, ans = get(pot);
			else chkmin(ans, get(pot));
		}
	};
	runit(0); len++; runit(1); depose(ans);
	//cerr << ct << endl;
	reverse(ans.begin(), ans.end());
	for(auto v : ans) cout << v; cout << endl;
}

int main() {
#ifdef YJR_2333_TEST
	freopen("1.in", "r", stdin);
#endif
	pw[0] = 1; rep(i, 1, 18) pw[i] = pw[i - 1] * 10;
	ios :: sync_with_stdio(false), cin.tie(0), cout.tie(0);
	int T; cin >> T;
	for(; T; T--) solve(); return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

2
8 1
45455151
2 1
42

output:

9696
6

result:

ok 2 lines

Test #2:

score: 0
Accepted
time: 181ms
memory: 4388kb

input:

10
1301 6
56328399613959594774559774218276494124991536454496431869449134772679831477279356599352619469813771742358572734317965823527349354276551857226632977613336815474383422853946661428822284645652423563864641261338984158269966469425994769486371736593879954275146732544891889693921182364554588732946...

output:

2861837555106640794797067737879913860686764066159587941287350938727749577629356630565034353414526438507603808735990935008225192080065174423508575377930722196909797866802717925250679901255
1330897896655974774035586406544907434842835048336411271110427836483063457950873824562288934364096546537492367401...

result:

ok 10 lines

Test #3:

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

input:

3
68312 1
97721793232462295468345161395388245623318759168492992575579675893432997968276399269361852215552871434587866112799189725614696256526239439933158479577223186954475137216722241699568491426254779997896288355965839555276546655174417599498493234323661877664997543475525992228661739933395881544363...

output:

165361439370989969611281150911906045608758081895436745302721903170895741831200164992289491213814537683869854746077326282091529052307364873668669947061960472772133388934416763345394409983809105665214082485429685401199520114459892594221344388768178495952936142426649338494017013932243993161711816767032...

result:

ok 3 lines

Test #4:

score: 0
Accepted
time: 12ms
memory: 4972kb

input:

3
104062 2
6586987777965872861989232258194733262765989634859654379877935579528781688159322513128986886481716832258115626748535521126479244461411522889744479186513298679746684345233214226141199846787117661159318966767135455745184384324833645134232699525177668629239933843658643667417337451334591594819...

output:

536246497591460214899497073157707308719964754106858053886979792537707870310253164299747153718261114131636990130350872742851787818427135113617679220183754863021102973854172956224432906133335696002890140207617299467927865340000078212572980076032917286214327823207585568582552662612028254042515906063023...

result:

ok 3 lines

Test #5:

score: 0
Accepted
time: 14ms
memory: 5508kb

input:

3
139639 3
6796297676823528648589397343663999328612414278384367347213637689464348185237425534836886677731351726963453579377613988437426483671299519186839344132333793569544718489728294346989818592279444871423953477919473799463194216678119582972131632322347549538925164854516141164554772823372476647126...

output:

126364763403906564661708542497996384758493064461499142133308596067494936258655259133526434841726196274703766844552726915088706942994746309192813887599486034682622494344506129054929148805249803660505979746418821689885230718372401950523582639142168746487771785553740446005221635828358569536474437471762...

result:

ok 3 lines

Test #6:

score: 0
Accepted
time: 26ms
memory: 4684kb

input:

3
74882 4
34214651312364628656844245717387533432968776973534628295922991352118459564756246556257779312918116552177726519173345828839532314119892538422953191411989526818837499574837984599131437923829691932871927272598159916936847255554115731624229194141184295327556843698221845942155322267254877729895...

output:

652879872016718790343280470756061301445687203441680798826476501917145925778781111109343489062160438478188515389826291555084101569285971285993846457561557667210690487169933469816410296697081463378678731150633158904900018680809858404118923436246875692603950100371337341615443319224405626522868813204392...

result:

ok 3 lines

Test #7:

score: 0
Accepted
time: 59ms
memory: 5396kb

input:

3
191014 5
4625226525489118654543959629348153444699986242632464847423452621546972849227817733763237372239335981427166568676892839618898764121637356149689834276433852165285729163339388526992792556894792278543347578452353389831593643818698478199319882191378795871195868331188637941453446682259469316457...

output:

183433830723962716661960230479245454318025962759914611110498608412928382555357890844482989235397326332530009244441167586569039863115637789245293728629736732433450983262080427109116060046615860768206472546822403232142108561871987242547562597599614404577271199268661821460539766659678709433633532926618...

result:

ok 3 lines

Test #8:

score: 0
Accepted
time: 158ms
memory: 5280kb

input:

3
89585 6
94845874282137954862385693488638122989575112616926699152984211114725742468459969145259337775618857796224956393949274481244989438351268853962294993267143851959948416128442795399969913525879669463929768397987966315181534158658746641933973131881592663842895938779816214825692812493134824556695...

output:

299751945436714405327965382630641151220078087436306886008455290218867774598033154703298350470955635925864103042961309005090519862571207481236797905629359014249368432851738777659221783920211895526401428737190140639519448861544949137222152380658013492841793431645174714140875875011098436373161645837902...

result:

ok 3 lines

Test #9:

score: 0
Accepted
time: 15ms
memory: 3684kb

input:

1000
438 1
2517849689325865499132114642336162462526229452777943938182992956383698881134842963395515712949251433652761697475196628342214595685672144112568956575717136898856177694197933946755524666375993512634793331951161492287212454971511815257823292342711659258415167759313776646368654965574417395231...

output:

748936150458368879147482630159457763028554322942431259314856737377893084493327951133306407733863814927410043574237076571833145300484875759606530375804038146070837054761731126648297282834150805998661305332252023826677983
91742211464580719040769832120828477315449383443456839582655398455396278130875002...

result:

ok 1000 lines

Test #10:

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

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: 31ms
memory: 3596kb

input:

1000
339 3
9163225412581255315266828923167711137296521138867213374363794548283572234447976575396136427848756366754713547897594499817281488658226795963345311956629297357965219254498864379562223818165453699818569782568512899896568369453633434563347531526352315344759793546252139786416256297532237728985...

output:

17320085336505381033402042979863864748728993071457871710902369621896971390566049928087
303414409729053513885481240687
17597270
15669
1283838053980036200051841389000892463151272030330831803493589
1560322045162299829921416791329484329527
4243531807036148642992251191455715323698841515530953264341379464...

result:

ok 1000 lines

Test #12:

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

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: 185ms
memory: 3708kb

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: 492ms
memory: 3644kb

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: 41ms
memory: 3632kb

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: 30ms
memory: 3660kb

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: 66ms
memory: 3696kb

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: 184ms
memory: 3592kb

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: 461ms
memory: 3544kb

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: -100
Time Limit Exceeded

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: