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

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

FUNNY SOLUTION (VIEWER DISCRETION IS ADVISED)
Послано cena 15 фев 2013 04:29
#include <iostream>
using namespace std;

int main() {

    int arr[4] = {10, 670, 55252, 4816030};
    short m;

    cin >> m;
    cout << arr[m / 2 - 1];
    return 0;
}

//hey; can you guess how i got these values?(think of the simplest solution)

Edited by author 15.02.2013 04:31
Re: FUNNY SOLUTION (VIEWER DISCRETION IS ADVISED)
Послано Andrew Sboev [USU] 15 фев 2013 13:25
Nothing funny.
Re: FUNNY SOLUTION (VIEWER DISCRETION IS ADVISED)
Послано Grandmaster 11 фев 2015 23:52
if we are not too creative to calculate this on paper and there is no forum to take solution just do backtracking it works fine 1 second and something
#include <iostream>
using namespace std;
int x[10], n, cont = 0;
void back(int k)
{
    if(k == n)
    {
        int s1 = 0, s2 = 0;
        for(int i = 0; i < n / 2; i++)
        {
            s1 += x[i];
        }
        for(int i = n / 2; i <= n; i++)
        {
            s2 += x[i];
        }
        if(s2 == s1)
            cont++;
    }
    else
        for(int i = 0; i <= 9; i++)
        {
            x[k] = i;
            back(k + 1);
        }
}
int main () {
    cin >> n;
    back(0);
    cout << cont;
    return 0;
}