View Code of Problem 787

#include <algorithm>
#include <cctype>
#include <cmath>
#include <cstring>
#include <iostream>
#include <set>
#include <string>
#include <vector>
using namespace std;

int f(int apple,int plate){
    if(apple == 0)
        return 1;
    if(plate == 0)
        return 0;
    if(apple < plate)
        return f(apple, apple);
    return f(apple, plate - 1)+f(apple - plate, plate);
}


int main()
{
    int n;
    cin >> n;
    while(n--){
        int apple, plate;
        cin >> apple >> plate;
        cout << f(apple,plate) << endl;
    }
}

Double click to view unformatted code.


Back to problem 787