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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ сжатие изображения http://www.cyberforum.ru/cpp-beginners/thread455244.html
хочу написать программку на C++ , желательно C++ Builder 6 которая сжимает изображение и востанавливает с помощью вейвлетов, но не знаю как.
C++ OLE Automation листинг #include "windows.h" #include <iostream> #include "ole2.h" #include <stdio.h> HRESULT AutoWrap(int autoType, VARIANT *pvResult, IDispatch *pDisp, LPOLESTR ptName, int cArgs...) { // Begin variable-argument list... va_list marker; http://www.cyberforum.ru/cpp-beginners/thread455240.html
C++ Скрытие Dll
Здравствуйте! Мне нужно скрыть Длл! Защита игры палит это длл и надо сделать Обход (скрытие) Прошу помоч!
Функция для вставки элемента в массив C++
#include <iostream> #include <stdio.h> #include <malloc.h> using namespace std; void insert(int *elem, int index,int *ptr,int *n) { for (int j=*n-1; j>=index; j--) ptr=ptr; *n++;
C++ Алгоритм Форда - Беллмана http://www.cyberforum.ru/cpp-beginners/thread455213.html
Помогите пожалуйста понять что не так у меня. ограничение времени на тест: 1 сек. ограничение памяти на тест: 32768 KB. ввод: standard вывод: standard Дан взвешенный ориентированный граф из N вершин и M дуг. В графе могут быть петли и/или дуги отрицательного веса. Известно, что нет циклов отрицательного веса. Требуется найти расстояние от первой вершины до всех остальных. Между любой парой...
C++ Не получается передать массив в функцию. #include <iostream> #define n 20 #define m 30 using namespace std; void switcher (int** arr, int a, int b); int main() { int arr; подробнее

Показать сообщение отдельно
Gepar
 Аватар для Gepar
1173 / 529 / 20
Регистрация: 01.07.2009
Сообщений: 3,512
29.02.2012, 17:45     С++ последовательность пар чисел
Какое запутанное у вас задание, тем не менее решаемо оно, но скучное, писать код лень
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;
}
 
Текущее время: 21:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru