Here is a very nice editorial which will clear all doubts, that is why and where we should use auto data type!. codeforces
And next one is lambda expression that you are asking there! So in this tester solution lambda expression is used to swap the values in vector<>p. We used [&] to capture all external values like moves[], p[] vectors.
after that swap function swap the values here…
If you have doubt about lambda then you can refer here.
Auto means the increment operation will automatically works. I think this is the simple term you can understand easily. As you know there are increment and decrements operation you can use easily.
@admins, checking @samhahkassis 's previous posts, we all can clearly see that he is spamming/advertising here. His previous answers are a big proof, please look to it, as @bansal1232 said. (I mean, since we got proofs, it shouldn’t be hard to ban him. )