Hisiri's blog

By Hisiri, history, 2 weeks ago, In English

I was solving the problem H in CodeTon8, but some strange things happened.

At the beginning, I got a RE in testcase 70, I thought it may be some memory problem in my code, so I use the variable is_special to locate it. But it doesn't work, so I tried to sumbit the same code in another language, it got accepted!

C++20: AC code

C++17: RE code

You may think that there must be some undefined behaviors in my code, but actually I tried to hack at the front of the code, it got different verdicts too!

C++20: AC code

C++17: TLE code

And the strangest thing is that the flag is_special is about the data input, theoretically it shouldn't be different even though with different language. It really confused me, can someone tell me what happened?

  • Vote: I like it
  • +11
  • Vote: I do not like it

»
2 weeks ago, # |
  Vote: I like it +20 Vote: I do not like it

If I remember correctly, infinite loop without any side effect is considered UB in C++.