не понимаю в чём ошибка

Мой код:

#include <iostream>
#include <vector>
using namespace std;
int main()
{
  int n,r,s=0,p=1,min=-1000000000,max=1000000000,imin,imax;
  cin>>n;
  vector <int> v;
  for (int i=0;i<n;i++){
    cin>>r;
    v.push_back(r);
  }
  for (int i=0;i<n;i++){
    if (v[i]>0){
      s+=v[i];
    }
    if (min>v[i]){
      min=v[i];
      imin=i;
    }
    if (max<v[i]){
      max=v[i];
      imax=i;
    }
  }
  if(imin<imax){
      for (int i=imin+1;i<imax;i++){
      p*=v[i];
    }
  }else{
    for (int i=imax+1;i<imin;i++){
      p*=v[i];
  }
  }
  cout<<s<<" "<<p;
  return 0;
}

Коротко: нужно вывести сумму положительных и произведение между минимальным и максимальным числом мин и макс в произведении не включительно

Полный текст задания:

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

Входные данные

В первой строке записано единственное число N (N⩽15) — количество элементов массива. Вторая строка содержит N целых чисел, представляющих заданный массив. Все элементы массива разделены пробелами. Каждое из чисел во входном файле, в том числе и N, не превышает 20 по абсолютной величине.

Выходные данные

В единственную строку нужно вывести два числа, разделённые пробелом: сумму положительных элементов и произведение чисел, расположенных между минимальным и максимальным элементами. Значения суммы и произведения не превышают по модулю 106.


Ответы (1 шт):

Автор решения: AlexGlebe

Поменяйте первоначальные значения min и max наоборот :

int min=1000000000,max=-1000000000;
→ Ссылка