CSES - Aalto Competitive Programming 2024 - wk8 - Wed - Results
Submission details
Task:A TIMES B!
Sender:aalto2024i_005
Submission time:2024-10-30 17:48:50 +0200
Language:Python3 (PyPy3)
Status:READY
Result:
Test results
testverdicttime
#10.04 sdetails
#2ACCEPTED0.04 sdetails
#30.04 sdetails
#40.04 sdetails
#50.04 sdetails
#60.04 sdetails
#7ACCEPTED0.04 sdetails
#80.04 sdetails
#90.04 sdetails
#10ACCEPTED0.04 sdetails
#110.04 sdetails
#120.04 sdetails
#13ACCEPTED0.04 sdetails
#140.04 sdetails
#150.04 sdetails
#160.04 sdetails
#170.04 sdetails
#180.04 sdetails
#190.04 sdetails
#200.04 sdetails
#210.04 sdetails
#220.04 sdetails
#230.04 sdetails
#24ACCEPTED0.04 sdetails
#250.04 sdetails
#260.04 sdetails
#270.04 sdetails
#280.04 sdetails
#29ACCEPTED0.04 sdetails
#300.04 sdetails
#310.04 sdetails
#320.05 sdetails
#330.04 sdetails
#340.05 sdetails
#350.05 sdetails
#36ACCEPTED0.05 sdetails
#37ACCEPTED0.05 sdetails
#380.05 sdetails
#390.05 sdetails
#400.05 sdetails
#410.05 sdetails
#420.05 sdetails
#430.05 sdetails
#440.04 sdetails
#45ACCEPTED0.05 sdetails
#460.06 sdetails
#470.07 sdetails
#480.07 sdetails
#490.06 sdetails
#500.07 sdetails
#510.06 sdetails
#520.07 sdetails
#530.08 sdetails
#54ACCEPTED0.06 sdetails
#550.07 sdetails
#56--details
#57--details
#58--details
#59--details
#60--details
#61--details
#62--details
#63--details
#64--details
#65--details

Code

from sys import argv


def convolve(F, G):
    NF = len(F)
    NG = len(G)
    N = NF + NG - 1
    C = [0 for _ in range(N)]
    s = 0
    for i in range(N):
        for j in range(max(0, i - NG), i + 1):
            if j < NF and (i - j) < NG:
                s += F[j] * G[i - j]
        C[i] = s
        s = 0
    return C


def carry(data):
    """Perform carrying, meaning that
    the "number" [2, 17, 5] becomes [3, 7, 5].
    """
    change = 1
    while change:
        change = 0
        cp = [0 for _ in data]
        for idx, e in enumerate(data):
            if e >= 10:
                change = 1
                car = e // 10
                cp[idx - 1] += car
                cp[idx] = e - (car * 10)
            else:
                cp[idx] = e
        data = cp
    return cp


if __name__ == "__main__":
    x, y = input(), input()
    x = [int(c) for c in x]
    y = [int(c) for c in y]
    C = convolve(x, y)
    M = carry(C)
    strM = "".join([str(e) for e in M])
    print(strM)

Test details

Test 1

Verdict:

input
8
5

correct output
40

user output
0

Test 2

Verdict: ACCEPTED

input
9
1

correct output
9

user output
9

Test 3

Verdict:

input
9
5

correct output
45

user output
5

Test 4

Verdict:

input
2
5

correct output
10

user output
0

Test 5

Verdict:

input
8
7

correct output
56

user output
6

Test 6

Verdict:

input
48
92

correct output
4416

user output
416

Test 7

Verdict: ACCEPTED

input
1
40

correct output
40

user output
40

Test 8

Verdict:

input
97
74

correct output
7178

user output
178

Test 9

Verdict:

input
58
8

correct output
464

user output
64

Test 10

Verdict: ACCEPTED

input
15
24

correct output
360

user output
360

Test 11

Verdict:

input
4
7

correct output
28

user output
8

Test 12

Verdict:

input
906
417

correct output
377802

user output
77802

Test 13

Verdict: ACCEPTED

input
778
105

correct output
81690

user output
81690

Test 14

Verdict:

input
2
989

correct output
1978

user output
978

Test 15

Verdict:

input
2830
5329

correct output
15081070

user output
5081070

Test 16

Verdict:

input
9
51382

correct output
462438

user output
62438

Test 17

Verdict:

input
25053
71372

correct output
1788082716

user output
788082716

Test 18

Verdict:

input
258180
674616

correct output
174172358880

user output
74172358880

Test 19

Verdict:

input
8821
2

correct output
17642

user output
7642

Test 20

Verdict:

input
1742712
9600618

correct output
16731112196016

user output
6731112196016

Test 21

Verdict:

input
8898606
2936506

correct output
26130809910636

user output
6130809910636

Test 22

Verdict:

input
82670092
60138633

correct output
4971666322864236

user output
971666322864236

Test 23

Verdict:

input
54746871
83822602

correct output
4589025178578342

user output
589025178578342

Test 24

Verdict: ACCEPTED

input
477252461
1032684

correct output
492850980435324

user output
492850980435324

Test 25

Verdict:

input
5932935
379

correct output
2248582365

user output
248582365

Test 26

Verdict:

input
620114
3126641

correct output
1938873857074

user output
938873857074

Test 27

Verdict:

input
452757081
222748761

correct output
100851078826726641

user output
00851078826726641

Test 28

Verdict:

input
689748332
888826746

correct output
613066765490487672

user output
13066765490487672

Test 29

Verdict: ACCEPTED

input
111337
25

correct output
2783425

user output
2783425

Test 30

Verdict:

input
809
84435378

correct output
68308220802

user output
8308220802

Test 31

Verdict:

input
9641697369926504411
425970950212942028697061039529...

correct output
410708299033321711216812810174...

user output
107082990333217112168128101740...

Test 32

Verdict:

input
793769623129909085108356241071...

correct output
264404012608186879272715560773...

user output
644040126081868792727155607731...

Test 33

Verdict:

input
8539777831492675800
436

correct output
3723343134530806648800

user output
723343134530806648800

Test 34

Verdict:

input
946492187160898604892390431179...

correct output
585982368537725512535970251461...

user output
859823685377255125359702514618...

Test 35

Verdict:

input
874046401974324184707688863838...

correct output
174556202198322810668657866310...

user output
745562021983228106686578663103...

Test 36

Verdict: ACCEPTED

input
168584663428092347854539803060...

correct output
235958453587245776929148968707...

user output
235958453587245776929148968707...

Test 37

Verdict: ACCEPTED

input
279013912031336395843652482056...

correct output
856375236460411618343887929304...

user output
856375236460411618343887929304...

Test 38

Verdict:

input
909594443312661242668561455177...

correct output
801297086685128929836268694647...

user output
012970866851289298362686946475...

Test 39

Verdict:

input
521558480102200460144622364590...

correct output
403176935665359352292583479223...

user output
031769356653593522925834792231...

Test 40

Verdict:

input
198766521920629467015839613580...

correct output
197951285207558548760833360414...

user output
979512852075585487608333604142...

Test 41

Verdict:

input
388239940637354291806784217812...

correct output
354893636094929851749498258576...

user output
548936360949298517494982585766...

Test 42

Verdict:

input
580031950564534684773525167998...

correct output
225288306472433597677862095876...

user output
252883064724335976778620958767...

Test 43

Verdict:

input
673497493525004204568833306269...

correct output
104167516519697053781119530996...

user output
041675165196970537811195309966...

Test 44

Verdict:

input
583582406474458495157747860432...

correct output
355985267949419682046226194863...

user output
559852679494196820462261948638...

Test 45

Verdict: ACCEPTED

input
154401310284121033413839709675...

correct output
472687322036571910421947159369...

user output
472687322036571910421947159369...

Test 46

Verdict:

input
964784520177212016698
135881607827957154173561484162...

correct output
131096471809203739325264543904...

user output
310964718092037393252645439048...

Test 47

Verdict:

input
506417941420848908877158785176...

correct output
124940484872553056181800567857...

user output
249404848725530561818005678579...

Test 48

Verdict:

input
278205703909200971326699489015...

correct output
213362541886605761113025837459...

user output
133625418866057611130258374598...

Test 49

Verdict:

input
488919747667763730629078434642...

correct output
244261035002054726047225565934...

user output
442610350020547260472255659344...

Test 50

Verdict:

input
683013292533355268532590162229...

correct output
271255985219635665074840248062...

user output
712559852196356650748402480620...

Test 51

Verdict:

input
701382950383712289025758984281...

correct output
396240397875971182850884660551...

user output
962403978759711828508846605510...

Test 52

Verdict:

input
950530137216618089651057517232...

correct output
525100658977646195130452101103...

user output
251006589776461951304521011035...

Test 53

Verdict:

input
758180874616256083097058082046...

correct output
612777382638418549100062437996...

user output
127773826384185491000624379963...

Test 54

Verdict: ACCEPTED

input
282198270649528096385750216226...

correct output
878945962031578099916769892430...

user output
878945962031578099916769892430...

Test 55

Verdict:

input
374271236006180996628555027124...

correct output
205927043926518428842129271440...

user output
059270439265184288421292714400...

Test 56

Verdict:

input
789860669365068182777748873091...

correct output
369460448033120451265094062370...

user output
(empty)

Test 57

Verdict:

input
826700926013863385104801713448...

correct output
291751287859134397942962144651...

user output
(empty)

Test 58

Verdict:

input
947468718382260248801518078140...

correct output
226868697296935607336651841496...

user output
(empty)

Test 59

Verdict:

input
177252461103268440789803954968...

correct output
111876380249200192763403085310...

user output
(empty)

Test 60

Verdict:

input
393293577943612353036749957226...

correct output
336630505716557163667422969707...

user output
(empty)

Test 61

Verdict:

input
320114112664152374910455416563...

correct output
136407754249269979820422504376...

user output
(empty)

Test 62

Verdict:

input
152757081122748761316522074282...

correct output
107712372482584798763194835348...

user output
(empty)

Test 63

Verdict:

input
889748332988826746683887083103...

correct output
729454517423131565738173030712...

user output
(empty)

Test 64

Verdict:

input
311337350148998951898280698942...

correct output
245742878826375358332482490843...

user output
(empty)

Test 65

Verdict:

input
709744353788876782171034561202...

correct output
198288295923437797210097622398...

user output
(empty)