Submission details
Task:A TIMES B!
Sender:aalto25i_007
Submission time:2025-10-29 17:46:35 +0200
Language:C++ (C++17)
Status:READY
Result:
Test results
testverdicttime
#1ACCEPTED0.00 sdetails
#2ACCEPTED0.00 sdetails
#3ACCEPTED0.00 sdetails
#4ACCEPTED0.00 sdetails
#5ACCEPTED0.00 sdetails
#60.00 sdetails
#7ACCEPTED0.00 sdetails
#80.00 sdetails
#90.00 sdetails
#100.00 sdetails
#11ACCEPTED0.00 sdetails
#120.00 sdetails
#130.00 sdetails
#140.00 sdetails
#150.00 sdetails
#160.00 sdetails
#170.00 sdetails
#180.00 sdetails
#190.00 sdetails
#200.00 sdetails
#210.00 sdetails
#220.00 sdetails
#230.00 sdetails
#240.00 sdetails
#250.00 sdetails
#260.00 sdetails
#270.00 sdetails
#280.00 sdetails
#290.00 sdetails
#300.00 sdetails
#310.00 sdetails
#320.00 sdetails
#330.00 sdetails
#340.00 sdetails
#350.00 sdetails
#360.00 sdetails
#370.00 sdetails
#380.00 sdetails
#390.00 sdetails
#400.00 sdetails
#410.00 sdetails
#420.00 sdetails
#430.00 sdetails
#440.00 sdetails
#450.00 sdetails
#460.00 sdetails
#470.01 sdetails
#480.01 sdetails
#490.00 sdetails
#500.01 sdetails
#510.00 sdetails
#520.01 sdetails
#530.01 sdetails
#540.00 sdetails
#550.01 sdetails
#560.19 sdetails
#570.21 sdetails
#580.21 sdetails
#590.17 sdetails
#600.10 sdetails
#61--details
#62--details
#63--details
#640.82 sdetails
#65--details

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:53:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   53 |  for (int i = 0; i < a.size(); i++) {
      |                  ~~^~~~~~~~~~
input/code.cpp:57:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   57 |  for (int i = 0; i < b.size(); i++) {
      |                  ~~^~~~~~~~~~

Code

#include <bits/stdc++.h>
using namespace std;
#define rep(i, a, b) for(int i = a; i < (b); ++i)
#define all(x) begin(x), end(x)
#define sz(x) (int)(x).size()
typedef long long ll;
typedef pair<int, int> pii;
typedef vector<int> vi;
typedef complex<double> C;
typedef vector<double> vd;

void fft(vector<C>& a) {
int n = sz(a), L = 31 - __builtin_clz(n);
static vector<complex<long double>> R(2, 1);
static vector<C> rt(2, 1); // (^ 10% fas te r i f double)
for (static int k = 2; k < n; k *= 2) {
R.resize(n); rt.resize(n);
auto x = polar(1.0L, acos(-1.0L) / k);
rep(i,k,2*k) rt[i] = R[i] = i&1 ? R[i/2] * x : R[i/2];
}
vi rev(n);
rep(i,0,n) rev[i] = (rev[i / 2] | (i & 1) << L) / 2;
rep(i,0,n) if (i < rev[i]) swap(a[i], a[rev[i]]);
for (int k = 1; k < n; k *= 2)
for (int i = 0; i < n; i += 2 * k) rep(j,0,k) {
C z = rt[j+k] * a[i+j+k]; // (25% fas te r i f hand=ro l led )
a[i + j + k] = a[i + j] - z;
a[i + j] += z;
}
}

vd conv(const vd& a, const vd& b) {
if (a.empty() || b.empty()) return {};
vd res(sz(a) + sz(b) - 1);
int L = 32 - __builtin_clz(sz(res)), n = 1 << L;
vector<C> in(n), out(n);
copy(all(a), begin(in));
rep(i,0,sz(b)) in[i].imag(b[i]);
fft(in);
for (C& x : in) x *= x;
rep(i,0,n) out[i] = in[-i & (n - 1)] - conj(in[i]);
fft(out);
rep(i,0,sz(res)) res[i] = imag(out[i]) / (4 * n);
return res;
}


int main() {
//  vd test = conv(vector2, vector3);
 vd vectora, vectorb;
 string a, b;
 cin >> a >> b;
 for (int i = 0; i < a.size(); i++) {
     double temp =  (a[i] - '0');
     vectora.push_back(temp);
 }
 for (int i = 0; i < b.size(); i++) {
     double temp =  (b[i] - '0');
     vectorb.push_back(temp);
 }
 
 vd test = conv(vectora, vectorb);
 for (auto i : test) cout << i;
}

Test details

Test 1

Verdict: ACCEPTED

input
8
5

correct output
40

user output
40

Test 2

Verdict: ACCEPTED

input
9
1

correct output
9

user output
9

Test 3

Verdict: ACCEPTED

input
9
5

correct output
45

user output
45

Test 4

Verdict: ACCEPTED

input
2
5

correct output
10

user output
10

Test 5

Verdict: ACCEPTED

input
8
7

correct output
56

user output
56

Test 6

Verdict:

input
48
92

correct output
4416

user output
368016

Test 7

Verdict: ACCEPTED

input
1
40

correct output
40

user output
40

Test 8

Verdict:

input
97
74

correct output
7178

user output
638528

Test 9

Verdict:

input
58
8

correct output
464

user output
4064

Test 10

Verdict:

input
15
24

correct output
360

user output
21420

Test 11

Verdict: ACCEPTED

input
4
7

correct output
28

user output
28

Test 12

Verdict:

input
906
417

correct output
377802

user output
36987642

Test 13

Verdict:

input
778
105

correct output
81690

user output
77433540

Test 14

Verdict:

input
2
989

correct output
1978

user output
181618

Test 15

Verdict:

input
2830
5329

correct output
15081070

user output
1046434378273.55271e-15

Test 16

Verdict:

input
9
51382

correct output
462438

user output
459277218

Test 17

Verdict:

input
25053
71372

correct output
1788082716

user output
14371164652844316

Test 18

Verdict:

input
258180
674616

correct output
174172358880

user output
1244919411912576971448-7.10543...

Test 19

Verdict:

input
8821
2

correct output
17642

user output
161642

Test 20

Verdict:

input
1742712
9600618

correct output
16731112196016

user output
9697842819463847629691016

Test 21

Verdict:

input
8898606
2936506

correct output
26130809910636

user output
16881141691991721711781028466-...

Test 22

Verdict:

input
82670092
60138633

correct output
4971666322864236

user output
481244687689159134756899703933...

Test 23

Verdict:

input
54746871
83822602

correct output
4589025178578342

user output
404710895134166174165119887256...

Test 24

Verdict:

input
477252461
1032684

correct output
492850980435324

user output
47193164961371189186757870324

Test 25

Verdict:

input
5932935
379

correct output
2248582365

user output
156211710868901176245

Test 26

Verdict:

input
620114
3126641

correct output
1938873857074

user output
18121443525126223429174

Test 27

Verdict:

input
452757081
222748761

correct output
100851078826726641

user output
818225679104149168191152193125...

Test 28

Verdict:

input
689748332
888826746

correct output
613066765490487672

user output
481121842402362762842923092372...

Test 29

Verdict:

input
111337
25

correct output
2783425

user output
27711212935

Test 30

Verdict:

input
809
84435378

correct output
68308220802

user output
6432104607651101916372

Test 31

Verdict:

input
9641697369926504411
425970950212942028697061039529...

correct output
410708299033321711216812810174...

user output
364273123163131194231254236240...
Truncated

Test 32

Verdict:

input
793769623129909085108356241071...

correct output
264404012608186879272715560773...

user output
214857571112101782062392373082...
Truncated

Test 33

Verdict:

input
8539777831492675800
436

correct output
3723343134530806648800

user output
324475757310391957861375459845...

Test 34

Verdict:

input
946492187160898604892390431179...

correct output
585982368537725512535970251461...

user output
543312175116144174204214278330...
Truncated

Test 35

Verdict:

input
874046401974324184707688863838...

correct output
174556202198322810668657866310...

user output
879139155977713018615010214727...
Truncated

Test 36

Verdict:

input
168584663428092347854539803060...

correct output
235958453587245776929148968707...

user output
193592155185210218243273293325...
Truncated

Test 37

Verdict:

input
279013912031336395843652482056...

correct output
856375236460411618343887929304...

user output
621396012412211812912915814816...
Truncated

Test 38

Verdict:

input
909594443312661242668561455177...

correct output
801297086685128929836268694647...

user output
727272193139257208277267271245...
Truncated

Test 39

Verdict:

input
521558480102200460144622364590...

correct output
403176935665359352292583479223...

user output
354936488312512715410787841021...
Truncated

Test 40

Verdict:

input
198766521920629467015839613580...

correct output
197951285207558548760833360414...

user output
990158188238296334315269302266...
Truncated

Test 41

Verdict:

input
388239940637354291806784217812...

correct output
354893636094929851749498258576...

user output
277592616912717616594150170230...
Truncated

Test 42

Verdict:

input
580031950564534684773525167998...

correct output
225288306472433597677862095876...

user output
156410484415714216816418816425...
Truncated

Test 43

Verdict:

input
673497493525004204568833306269...

correct output
104167516519697053781119530996...

user output
637628311916418920023725425224...
Truncated

Test 44

Verdict:

input
583582406474458495157747860432...

correct output
355985267949419682046226194863...

user output
305326335320264363046312834533...
Truncated

Test 45

Verdict:

input
154401310284121033413839709675...

correct output
472687322036571910421947159369...

user output
315184333533937474186651041061...
Truncated

Test 46

Verdict:

input
964784520177212016698
135881607827957154173561484162...

correct output
131096471809203739325264543904...

user output
933671211691522051972212472122...
Truncated

Test 47

Verdict:

input
506417941420848908877158785176...

correct output
124940484872553056181800567857...

user output
102042675910491156169176195152...
Truncated

Test 48

Verdict:

input
278205703909200971326699489015...

correct output
213362541886605761113025837459...

user output
146111012212713914615622729223...
Truncated

Test 49

Verdict:

input
488919747667763730629078434642...

correct output
244261035002054726047225565934...

user output
166814020023325027129426837341...
Truncated

Test 50

Verdict:

input
683013292533355268532590162229...

correct output
271255985219635665074840248062...

user output
187812389568314620221119118720...
Truncated

Test 51

Verdict:

input
701382950383712289025758984281...

correct output
396240397875971182850884660551...

user output
354233849086155228180162227259...
Truncated

Test 52

Verdict:

input
950530137216618089651057517232...

correct output
525100658977646195130452101103...

user output
457043717811694972001771802542...
Truncated

Test 53

Verdict:

input
758180874616256083097058082046...

correct output
612777382638418549100062437996...

user output
564012062152341811482222202092...
Truncated

Test 54

Verdict:

input
282198270649528096385750216226...

correct output
878945962031578099916769892430...

user output
626162174968116518821126029829...
Truncated

Test 55

Verdict:

input
374271236006180996628555027124...

correct output
205927043926518428842129271440...

user output
155055365972758394140107178146...
Truncated

Test 56

Verdict:

input
789860669365068182777748873091...

correct output
369460448033120451265094062370...

user output
287413319122621625426934441147...
Truncated

Test 57

Verdict:

input
826700926013863385104801713448...

correct output
291751287859134397942962144651...

user output
244644127737012072138192119183...
Truncated

Test 58

Verdict:

input
947468718382260248801518078140...

correct output
226868697296935607336651841496...

user output
183510710113917717324222425333...
Truncated

Test 59

Verdict:

input
177252461103268440789803954968...

correct output
111876380249200192763403085310...

user output
645644156871481801821871552192...
Truncated

Test 60

Verdict:

input
393293577943612353036749957226...

correct output
336630505716557163667422969707...

user output
248784103184142199283284387400...
Truncated

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
213142476011314115413511812122...
Truncated

Test 65

Verdict:

input
709744353788876782171034561202...

correct output
198288295923437797210097622398...

user output
(empty)