Why does this get an arithmetic error?
Difference between en1 and en2, changed 0 character(s)
I'm back with a strange error... I came back on codeforces recently to see that my solution for [problem E] (https://mirror.codeforces.com/contest/1902/problem/E) in the most recent educational codeforces round had failed the system tests.↵

I had the correct algorithm, and I was stuck debugging my code for ages until I submitted a new piece of code which was almost exactly the same and it got accepted. [This](https://mirror.codeforces.com/contest/1902/submission/236217048) gets WA, and [this](https://mirror.codeforces.com/contest/1902/submission/236217083) gets AC. The only difference in the codes, is that in the second program, I casted a `size_t` to a `long long` before multiplying it to `n`.↵

Original: ```ans += (long long) s[i].size() * n;```↵

Modified: ```ans += s[i].size() * n;```↵

I wouldn't think it would be an overflow error since `size_t` is the same as `unsigned long long` (unless it isn't? — but it is on my machine). This doesn't get marked as an overflow error by the codeforces diagnostics either. What is happening here?

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en3 English rika 2023-12-07 22:04:47 24
en2 English rika 2023-12-07 17:54:58 0 (published)
en1 English rika 2023-12-07 17:53:47 1080 Initial revision (saved to drafts)