Форум программистов, компьютерный форум CyberForum.ru

Определить, сколько существует различных раскрасок полоски из N клеток - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Алгоритмы планирования. Снижение приоритета http://www.cyberforum.ru/cpp-beginners/thread1129397.html
Написать программу, имитирующую выполнение работы процессора по алгоритму "Снижение приоритетов". очень сложно для меня,помогите,пожалуйста с объяснениями
C++ Программа, выполняющая простые арифметические операции Из книги Страуструпа "Проги для начинающих" есть программа. void error(string s) { cout << endl << s; _getch(); exit(0); } int main () { http://www.cyberforum.ru/cpp-beginners/thread1129395.html
Круговое планирование с фиксированным квантом времени C++
Алгоритмы планирования. Наименьшее остающееся время Задание: Написать программу, имитирующую выполнение работы процессора по алгоритму "Наименьшее остающееся время". и если можно с пояснениями!!)
C++ Работа с массивами в функции
Здравствуйте. Вопрос седующий - в программе есть 2 массива. Существует класс, в конструкторе которого я читаю эти 2 массива в переменные моего класса. В классе также есть 2 функции, одна работает с массивами(допустим, складывает поэлементно в 3-ий массив), а вторая выводит результат. Что-то такого типа: #include "Demodulator.h" double* I; double* Q; //представим, что в I и Q по 3 числа...
C++ Как создать программу в виде таблицы? http://www.cyberforum.ru/cpp-beginners/thread1129350.html
Написать программу вычисления значений функций F(x) в виде списка и в виде таблицы для указанного диапазона значений аргумента с приведенными значениями исходных данных. F=\frac{{cos}^{3}2x-{sin}^{3}3x}{2ab-x} Исходные значени a=0.5 b=1 Диапазон и шаг изменения x = –3,…, 9
C++ Определить попадание произвольной точки в заштрихованную область Определить попадание произвольной точки в заштрихованную область. подробнее

Показать сообщение отдельно
Brat_OK
0 / 0 / 0
Регистрация: 01.09.2013
Сообщений: 20
25.03.2014, 17:58  [ТС]     Определить, сколько существует различных раскрасок полоски из N клеток
Написал код вроде работает, можете привести для него контр тест на котором он может лечь?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <iostream>
#include <cstdio>
#include <cassert>
#include <cmath>
#include <vector>
#include <algorithm>
#include <queue>
#include <stack>
 
using namespace std;
 
long long MOD = 1e9+7;
 
 
long long fact (int n)
{
 
    long long res = 1;
 
    for (int i = 2; i <= n; i++)
        res = (res*i) % MOD;
 
    return res;
}
 
int main()
{
   int n,a,b,c,sum, m;
 
 
    cin >> n >> a >> b >> c;
 
    if (n < a+b+c || a+b+c == 0)
        {
            cout << 0;
            return 0;
       }
 
 
    if (a > 0 && b > 0 && c > 0)
    {
     m = min(c,min(a,b));
     sum = m * 3;
    }
    else if (a > 0 && b > 0 && c == 0)
    {
        m = min(a,b);
        sum = m*2;
    }
    else if (a > 0 && c > 0 && b == 0)
    {
        m = min(a,c);
        sum = m*2;
    }
    else if (b > 0 && c > 0 && a == 0)
    {
        m = min(b,c);
        sum = m*2;
    }
    else
        {
            cout << 1;
            return 0;
        }
 
 
    int r= 0;
 
    if (a >= m)
        r += a-m;
    if (b >= m)
        r += b-m;
    if (c >= m)
        r += c-m;
 
    cout << fact(sum)+r;
 
 
}
Добавлено через 2 минуты
При тесте 3 0 0 0, ответ 27?
Откуда там краска, там же нет клеток с краской?
Или я чего то не понял?
 
Текущее время: 02:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru