### Genius3435's blog

By Genius3435, history, 3 weeks ago,

So I was golfing this problem, and I wanted to improve the line int c = t[v] = 1;, so I tried c = t[v] = 1;, with c defined earlier on in the same spot as a and b, but this didn't work. For the sample case, it gave the output 1 1 1 0 0 instead of 1 0 0 1 1.

I was wondering what that line actually does and if I can golf it more, so I found this question on quora, but even after reading that I still don't know why the other way isn't working. I use VSCode, so when I hover over the t[v] part, it says something to do with a reference to part of the bitset, so I'm thinking it's almost like a pointer to that index of the bitset, but that doesn't make sense because we're incrementing it, and you can't really increment a boolean value (which is basically what t[v] is..

Code

• +2

 » 3 weeks ago, # |   +4 It's a recursive function. If you try to use a global variable instead of a local variable, then it will be clobbered by nested calls.
•  » » 3 weeks ago, # ^ |   0 Oh that makes sense. Thanks!Also, thanks for the downvotes people, it looks like I'm nearing the most down-voted on codeforces!