#include <iostream>
int add(int lhs, int rhs)
{
return lhs + rhs;
}
int accum(int lhs, int rhs)
{
return add(lhs, rhs);
}
template<typename... Args>
int accum(int lhs, int rhs, Args&&... rest)
{
return accum(add(lhs, rhs), std::forward<Args>(rest)...);
}
int main() {
std::cout << accum(10, 20, 100, 1000, 10000);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKaW50IGFkZChpbnQgbGhzLCBpbnQgcmhzKQp7CglyZXR1cm4gbGhzICsgcmhzOwp9CgppbnQgYWNjdW0oaW50IGxocywgaW50IHJocykKewoJcmV0dXJuIGFkZChsaHMsIHJocyk7Cn0KCnRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3M+CmludCBhY2N1bShpbnQgbGhzLCBpbnQgcmhzLCBBcmdzJiYuLi4gcmVzdCkKewoJcmV0dXJuIGFjY3VtKGFkZChsaHMsIHJocyksIHN0ZDo6Zm9yd2FyZDxBcmdzPihyZXN0KS4uLik7Cn0KCmludCBtYWluKCkgewoJc3RkOjpjb3V0IDw8IGFjY3VtKDEwLCAyMCwgMTAwLCAxMDAwLCAxMDAwMCk7CglyZXR1cm4gMDsKfQ==