QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#168539 | #5460. Sum of Numbers | mendicillin2 | TL | 584ms | 5124kb | C++17 | 1.9kb | 2023-09-08 17:00:35 | 2023-09-08 17:00:35 |
Judging History
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 ...