how doest subsets of subsets iteration works? : i read  
`for ( x = y; x > 0; x = ( y & (x-1) ) )` 

generates all subsets of bitmask y.

How does this iteration works? Any intuitive explaination?


source : http://codeforces.com/blog/entry/45223

see suboptimal solution section.
