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

С++ последовательность пар чисел - C++

Войти
Регистрация
Восстановить пароль
 
Pussycat
0 / 0 / 0
Регистрация: 29.02.2012
Сообщений: 4
29.02.2012, 16:55     С++ последовательность пар чисел #1
Помогите,пожалуйста, написать программу!!!Учитывая список пар чисел, например, [(1,4), (5,2), (3, 7), (7,10)] найти самую длинную последовательность, упорядоченные : первый эл-т первой пары > первого эл-та со второй пар , второй эл-т 1-й пары < второго второй пары и т д
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.02.2012, 16:55     С++ последовательность пар чисел
Посмотрите здесь:

C++ Программа для отыскания заданного количества пар дружественных чисел
C++ Поиск противоположных пар чисел
Для встречающихся в заданном тексте пар расположенных символов указать, сколько раз встречается каждое из таких пар C++
C++ Для встречающихся в заданном тексте пар расположенных символов указать, сколько раз встречается каждое из таких пар.
Сложение пар чисел в одномерном массиве C++
C++ В неубывающей последовательности целых чисел найти количество пар чисел с заданной разностью "D"
C++ Дается последовательность. Найдите максимальное произведение среди всех пар этих чисел
Обмен пар чисел в одномерном массиве C++
Сортировка пар чисел C++
Сделать игру по угадыванию пар чисел C++
C++ Сумма пар чисел

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gepar
 Аватар для Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,512
29.02.2012, 17:45     С++ последовательность пар чисел #2
Какое запутанное у вас задание, тем не менее решаемо оно, но скучное, писать код лень
1)Создаём пары (pair) и запихиваем их в какой-нибудь контейнер, вектор например.
2)Создаём два итератора и два счётчика упорядоченных пар, обнуляем их.
3)Ищем первые пары с вашим условием, итератор наводим на первую пару и бегаем циклом пока условие выполняется увеличивая при этом счётчик.
4)Ищем остальные пары, всё аналогично только используем второй итератор, в конце (когда условие перестаёт выполняться) сравниваем размеры счётчиков (где больше?).
5)Идём на шаг 4 и бегаем пока не закончатся элементы.
Надеюсь понятно объяснил.

Добавлено через 36 минут
Решил всё же написать код, но что-то он страшный получился ...
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
#include <iostream>
#include <vector>
using namespace std;
 
int main()
{
    vector <pair <int,int> > vec;
    vec.push_back(make_pair(1,4));
    vec.push_back(make_pair(5,2));
    vec.push_back(make_pair(3,7));
    vec.push_back(make_pair(7,10));
    vec.push_back(make_pair(6,11));
    vec.push_back(make_pair(5,12));
 
    vector <pair <int,int> >::iterator it1, it2, temp, temp2;
    int count1, count2;
 
    it1=it2=vec.end();
    count1=count2=0;
 
    for(temp=vec.begin();temp<vec.end();temp++)
    {
        if(temp->first>(temp+1)->first && temp->second<(temp+1)->second)
        {
            if(it1==vec.end())
            {
                it1=temp;
                count1++;
                temp2=temp+1;
                while(temp2!=vec.end() && temp2->first>(temp2+1)->first && temp2->second<(temp2+1)->second)
                {
                    count1++;
                    temp2++;
                }
                temp=(temp2-1); //немного ускорит выполнение
            }
            else
            {
                it2=temp;
                temp2=temp+1;
                count2++;
                while(temp2!=vec.end() && temp2->first>(temp2+1)->first && temp2->second<(temp2+1)->second)
                {
                    count2++;
                    temp2++;
                }
 
                if(count2>count1)
                 it1=it2, count1=count2;
 
                it2=vec.end();
                count2=0;
                temp=(temp2-1);//немного ускорит выполнение
            }
        }
    }
    //самая длинный список пар:
    count1++;//чтобы вывести все элементы списка
    while(count1)
    {
        cout<<it1->first<<'\t'<<it1->second<<endl;
        it1++,count1--;
    }
 
    return 0;
}
Pussycat
0 / 0 / 0
Регистрация: 29.02.2012
Сообщений: 4
29.02.2012, 19:29  [ТС]     С++ последовательность пар чисел #3
Спасибо большое=)

Добавлено через 36 минут
Программа кампилится,создается debug,а потом выдает ошибку(((
Yandex
Объявления
29.02.2012, 19:29     С++ последовательность пар чисел
Ответ Создать тему
Опции темы

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