Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- class Result {
- public:
- int val;
- Result(int64_t v)
- {
- val = v;
- }
- int64_t ret()
- {
- return val;
- }
- };
- void bar(int64_t a, int64_t b, uint32_t k)
- {
- if (k == 0) {
- throw Result(a+b);
- } else if (k > 0 && b == 1) {
- throw Result(a);
- } else if (k > 0 && b > 1) {
- try {
- bar(a, b - 1, k);
- } catch (Result t){
- try {
- bar(a, t.ret(), k - 1);
- } catch (Result t) {
- throw t;
- }
- }
- }
- }
- int main()
- {
- int64_t a, b;
- uint32_t k;
- while (std::cin>>a>>b>>k) {
- try {
- bar(a, b, k);
- } catch(Result t) {
- std::cout<<t.ret()<<std::endl;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement