Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
myxayan
3 / 3 / 8
Регистрация: 16.10.2012
Сообщений: 93
1

Массив: Найти такую неразрывную последовательность положительных чисел, сумма элементов у которой максимальная.

11.04.2013, 16:40. Просмотров 1726. Ответов 21
Метки нет (Все метки)

Найти такую неразрывную последовательность положительных чисел, сумма элементов у которой максимальная.

ну вот я сделал, но только будет работать, если есть только один отрицательный элемент.
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
#include<iostream>
#include<conio.h>
using namespace std;
 
int main()
 {
          const int n=8;
          int i,a[n],z,c,p,d,k;
          
          cout<<"vvod elem massiva"<<endl;
          for (i=0;i<n;i++)
           cin>>a[i];
           z=0; c=0;
           for (i=0;i<p;i++)
            if (a[i]>0)
            z=z+a[i];
        else p=i; k=0;
         for (i=p+1;i<n;i++)
           if (a[i]>0) 
         d=d+a[i];
         if (z>d)
         
          for (i=0;i<p;i++)
          cout<<a[i]<<"    ";
          else  
           
          for (i=p+1;i<n;i++)
          cout<<a[i]<<"    ";
          
        getch();
       return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2013, 16:40
Ответы с готовыми решениями:

Найти такую непрерывную последовательность положительных чисел, сумма элементов в которой максимальна
В произвольном массиве нужно найти такую непрерывную последовательность...

Найти ту непрерывную последовательность положительных чисел, сумма элементов которой максимальна
Найти ту непрерывную последовательность положительных чисел, сумма элементов в...

Найти непрерывную последовательность положительных чисел, сумма элементов которой максимальна
Знайти таку нерозривну послыдовнысть позитивних чисел сума елементыв якый...

Дано двумерный массив целых чисел. Найти номер строки, в которой сумма отрицательных нечетных элементов наибольшая
помогите Пожалуста с задачей я не знаю как правильно прописать, чтоб он выводил...

Найти строку матрицы, в которой сумма положительных элементов максимальна
Разработать программу, которая формирует двумерный массив L размером N x M...

21
Ternsip
664 / 192 / 29
Регистрация: 10.05.2012
Сообщений: 595
11.04.2013, 18:33 21
yoghurt92,
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
#include <iostream>
#include <cmath>
#include <algorithm>
#include <vector>
#include <limits>
#include <queue>
#include <string>
#include <set>
#include <stack>
#include <tuple>
 
using namespace std;
 
const int NMAX = 10;
vector < vector <int> > ans(NMAX, vector <int> (NMAX, -1));
vector < int > a(NMAX);
int bi = 0, bj = 0;
 
int solv(int i, int j){
    if (i > j)
        return 0;
    if (ans[i][j] != -1)
        return ans[i][j];
    if (a[i] <= 0){
        ans[i][j] = -1;
        solv(i+1, j);
    }else 
        ans[i][j] = solv(i+1, j) + a[i];
    if (ans[bi][bj] < ans[i][j]){
        bi = i;
        bj = j;
    }
    return ans[i][j];
}
 
 
int main(){         
    freopen("input.txt", "rt", stdin);
    freopen("output.txt", "wt", stdout);
    int n;
    cin >> n;
    for (int i = 0; i < n; i++)
        scanf("%d", &a[i]);
    ans[0][0] = a[0];
    for (int i = 0; i < n; i++)
        solv(0, i);
    printf("from %d to %d sum = %d", bi+1, bj+1, ans[bi][bj]); // один-индексация
    return 0;
}
1
DiffEreD
1442 / 779 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
11.04.2013, 21:10 22
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
#include <iostream>
#include <array>
#include <functional>
#include <algorithm>
#include <iterator>
 
int main()
{
    setlocale(0,"");
    
    const size_t size = 28;
    std::array<int, size> ar = {-4,6,2,6,-7,-3,6,0,4,3,8,1,-9,-2,4,6,7,1,3,1,0,2,-6,4,3,8,-7,4};
    
    int sum = 0;
    std::pair<std::array<int, size>::iterator, std::array<int, size>::iterator> interval;
    for (auto start = ar.begin(), stop = start; start <= ar.end(); start = ++stop)
    {
        start = std::find_if(start, ar.end(), std::bind(std::greater_equal<int>(), std::placeholders::_1, 0));
        if (start != ar.end()) 
        {
            stop =  std::find_if(std::next(start, 1), ar.end(), std::bind(std::less<int>(), std::placeholders::_1, 0));
            int current_sum = std::accumulate(start, stop, 0);
            if (current_sum > sum)
            {
                sum = current_sum;
                interval = std::make_pair(start, stop);
            }
            //std::copy(start, stop, std::ostream_iterator<int>(std::cout, " "));
            //std::cout<<"\n";
        }
    }
    
    std::cout<<"Result: ";
    if (interval.first == interval.second)
        std::cout<<"No match\n";
    else
    {
        std::copy(interval.first, interval.second, std::ostream_iterator<int>(std::cout, " "));
        std::cout<<"\nSum: "<<sum<<"\n";
    }
    
    return 0;
}
0
11.04.2013, 21:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.04.2013, 21:10

Выполнить сортировку элементов в той строке матрицы сумма элементов в которой максимальная
как я могу писать эту задачу. Задана матрица целых чисел. Выполнить сортировку...

Вывести номер строки в массиве, сумма чисел которой максимальная
Пользователь вводит элементы двумерного массива. Необходимо вывести номер...

Найти такую точку, сумма расстояний от которой до остальных минимальна
Добрый всем день. Помогите мне решить данное задание , я плохо разбираюсь в...


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

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

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