#include <iostream>
using namespace std;
#include <vector>
#include <stdexcept>
template <typename IntType>
std::vector<IntType> range(IntType start, IntType stop, IntType step)
{
if (step == IntType(0))
{
throw std::invalid_argument("step for range must be non-zero");
}
std::vector<IntType> result;
IntType i = start;
while ((step > 0) ? (i < stop) : (i > stop))
{
result.push_back(i);
i += step;
}
return result;
}
template <typename IntType>
std::vector<IntType> range(IntType start, IntType stop)
{
return range(start, stop, IntType(1));
}
template <typename IntType>
std::vector<IntType> range(IntType stop)
{
return range(IntType(0), stop, IntType(1));
}
int main() {
cout << range(5, 10, -1).size() << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPHN0ZGV4Y2VwdD4KCnRlbXBsYXRlIDx0eXBlbmFtZSBJbnRUeXBlPgpzdGQ6OnZlY3RvcjxJbnRUeXBlPiByYW5nZShJbnRUeXBlIHN0YXJ0LCBJbnRUeXBlIHN0b3AsIEludFR5cGUgc3RlcCkKewogIGlmIChzdGVwID09IEludFR5cGUoMCkpCiAgewogICAgdGhyb3cgc3RkOjppbnZhbGlkX2FyZ3VtZW50KCJzdGVwIGZvciByYW5nZSBtdXN0IGJlIG5vbi16ZXJvIik7CiAgfQoKICBzdGQ6OnZlY3RvcjxJbnRUeXBlPiByZXN1bHQ7CiAgSW50VHlwZSBpID0gc3RhcnQ7CiAgd2hpbGUgKChzdGVwID4gMCkgPyAoaSA8IHN0b3ApIDogKGkgPiBzdG9wKSkKICB7CiAgICByZXN1bHQucHVzaF9iYWNrKGkpOwogICAgaSArPSBzdGVwOwogIH0KCiAgcmV0dXJuIHJlc3VsdDsKfQoKdGVtcGxhdGUgPHR5cGVuYW1lIEludFR5cGU+CnN0ZDo6dmVjdG9yPEludFR5cGU+IHJhbmdlKEludFR5cGUgc3RhcnQsIEludFR5cGUgc3RvcCkKewogIHJldHVybiByYW5nZShzdGFydCwgc3RvcCwgSW50VHlwZSgxKSk7Cn0KCnRlbXBsYXRlIDx0eXBlbmFtZSBJbnRUeXBlPgpzdGQ6OnZlY3RvcjxJbnRUeXBlPiByYW5nZShJbnRUeXBlIHN0b3ApCnsKICByZXR1cm4gcmFuZ2UoSW50VHlwZSgwKSwgc3RvcCwgSW50VHlwZSgxKSk7Cn0KCmludCBtYWluKCkgewoJY291dCA8PCByYW5nZSg1LCAxMCwgLTEpLnNpemUoKSA8PCBlbmRsOwoJcmV0dXJuIDA7Cn0=