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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Niсe
1 / 1 / 0
Регистрация: 09.12.2009
Сообщений: 30
#1

Задачка про треугольники - C++

12.07.2013, 20:34. Просмотров 329. Ответов 0
Метки нет (Все метки)

Здравствуйте, помогите, пожалуйста, решить задачку.

Мое решение "втупую" не проходит ограничения по времени.

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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <cmath>
 
using namespace std;
 
#define forn(i, n) for(int i = 0; i < (int) n; i++)
 
vector<vector<int>> mas(6, vector<int> (3));
 
bool corr()
{
    bool ans = true;
    forn(i, 6)
    {
        int j = (((i - 1) % 6) + 6) % 6;
 
 
        ans = ans & (mas[i][1] == mas[j][2] && mas[i][2] == mas[(i+1) % 6][1]);
 
    }
    return ans;
}
 
vector<bool> used(6);
 
long long ans = -1;
 
void change(int i)
{
    swap(mas[i][1], mas[i][2]);
    swap(mas[i][0], mas[i][1]);
}
 
 
void sol(int cnt)
{
    if(cnt == 5)
    {
        if(corr())
        {
            long long current = 0;
            forn(i, 6)
            {
                current += mas[i][0];
            }
            ans = max(ans, current);
        }
    }
    else
    {
        for(int i = cnt+1; i < 6; i++)
        {
            if(!used[i])
            {
                used[i] = true;
                forn(j, 3)
                {
                    change(i);
                    sol(cnt+1);
                }
                used[i]= false;
            }
        }
        
    }
    
}
 
 
int main()
{
   freopen("input.txt","r",stdin);
   freopen("output.txt","w",stdout);
 
   bool chek = false;
 
   forn(i, 6)
   {
       forn(j, 3)
       {
           cin >> mas[i][j];
       }
   }
 
   forn(i, 720)
   {
       sol(0);
      next_permutation(mas.begin(), mas.end());
   }
    
   if(ans == -1)
       cout << "none";
   else
    cout << ans;
}
Условие http://www.chasolimp.de/task_658.htm
0
Вложения
Тип файла: docx условие.docx (24.2 Кб, 8 просмотров)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.07.2013, 20:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задачка про треугольники (C++):

Сложная задача про треугольники С++ - C++
Миша любил рисовать треугольники, но делал он это необычным способом. Сначала рисовал произвольный треугольник, потом каждую сторону делил...

задача про треугольники Герона (дело не в нахождении площади) - C++
Задание звучит так : треугольники длины стороны и площади каких есть натуральными числами называются треугольниками Герона (например...

задачка про ящики - C++
Имеется 8 ящиков у всех вес по 2 кг, а у одного 1 кг, записать это все в массив и определить в каком по номеру элементе массива содержится...

Задачка про массивы - C++
Только начала изучать программирование, пытаюсь разбиратся ,но не всё так просто , помогите пжлст решить задачку на массивы Даны два...

Задачка про спорт - C++
Вводятся фамилии спортсменов и их результаты в соревнованиях по прыжкам в длину. После ввода данных очередного спортсмена выводить...

Задачка про треугольник. - C++
Для вас эта задача очень легкая, но я не как не могу ее сделать. Пожалуйста помогите! Условие такое : В треугольнике (см. рис. 1.8,...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.07.2013, 20:34
Привет! Вот еще темы с ответами:

Задачка про деревья на рекурсию - C++
Пасаны, не особо шарю деревья, а еще нужно рекурсия.. Короче нужна помощь, хотя бы объеснить что как должно работать, буду очень...

Задачка про Коня и Короля - C++
Задана шахматная доска, на которой расставлены черные и белые фигуры, в том числе белый король и черный конь. Определить, может ли белый...

Олимпиадная задачка про Роботов - C++
Помогите решить не могу додуматься Роботы Кафедра ТМОИ создает роботов, которые могут находить и собирать мины с полей. Прежде чем...

Задачка про строки и слова - C++
Ошибочка закралась: суть задачки надо прочитать файл и вывести слова которые начинаются и кончаются на &quot;a&quot; (ну вот вбил я в свой файл для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru