ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1044. Счастливые билеты. Easy!

generate all sums with recursion
Послано Manciu Ion 21 янв 2017 01:59
#include <iostream>
#include <stdio.h>
#include <memory.h>

#define NMAX 37
using namespace std;

long cnt[NMAX];
int n;

void genSum(int k, int sum);

int main()
{
    #ifndef ONLINE_JUDGE
    freopen("input.txt", "rt", stdin);
    ///freopen("output.txt", "wt", stdout);
    #endif

    scanf("%d", &n);

    genSum (0 , 0);

    int answer = 0;
    for (int it = 9 * n / 2; it >= 0; --it)
    {
        answer += cnt[it] * cnt[it];
    }

    printf("%d\n", answer);

    return 0;
}

void genSum(int k, int sum)
{
    if (k == n / 2)
    {
        ++cnt[ sum ];
    }
    else
    for (int digit = 0; digit <= 9; ++digit)
    {
        genSum(k + 1, sum + digit);
    }
}