int a=10; int b=++a+a++ + ++a + a++ -(a==10)-(a==11)-(a==12); cout<<b;
Tried to explain with the picture.
The expression shows dynamic behaviour try to debug it by creating subexpression and checking it value. You`ll understand it in a better manner