Why does this get an arithmetic error?

Revision en2, by rika, 2023-12-07 17:54:58

I'm back with a strange error... I came back on codeforces recently to see that my solution for 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 gets WA, and this 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?

Tags contest, help, data types, arithmetic

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)