Участник:ZhenyaStrelkova/BEHAPPY

Материал из DISCOPAL
Перейти к: навигация, поиск

https://www.spoj.com/problems/BEHAPPY/

#include <iostream>
 
using namespace std;
 
const int maximumN = 21;
const int maximumM = 107;
int result[maximumM][maximumN];
 
int main() {
    int M, N;
    int a, b;
    cin >> M >> N;
 
    while (M + N != 0) {
        for (int i = 0; i <= M; i++) {
            for (int j = 0; j <= N; j++) {
                result[i][j] = 0;
            }
        }
 
        result[0][0] = 1;
        for (int i = 1; i <= M; i++) {
            cin >> a >> b;
            for (int j = a; j <= b; j++) {
                for (int k = j; k <= N; k++) {
                    result[i][k] += result[i - 1][k - j];
                }
            }
        }
        cout << result[M][N] << "\n";
        cin >> M >> N;
    }
 
    return 0;
}