CodeBlooded Ответов: 2

Добавление максимальных элементов из каждой строки в 2D-вектор таким образом, чтобы элемент строки a_I был меньше, чем a_(i+1)


Итак, я хочу собрать максимальный элемент из каждой строки(в 2D-векторе) и поместить его в новый вектор. И если новый вектор отсортирован, я хочу получить сумму всех векторных элементов.

Я попробовал это сделать, но код показывает ошибку : "не удается преобразовать 'std::vector в 'int' присваивание"

кроме того, является ли мой код правильным?

Что я уже пробовал:

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main()
{
int t,n,v1;
vector < vector<int> > vec;
vector<int> max;
cin>>t;
while(t--)
{
 cin>>n;
 for(int i=0; i<n; i++)
 {  vector<int> row;
    for(int j=0; j<n; j++)
    {
     int val;
      cin>>val;
      row.push_back(val);   
     }
     vec.push_back(row);
       }    

for (int i=0; i<n; i++)
{
    for(int j=0; j<n; j++)
    {
        v1=*max_element(vec.begin(), vec.end());
        max.push_back(v1);
    }
}

if(is_sorted(max.begin(),max.end()))
{
    cout<<accumulate(max.begin(), max.end(),0)<<endl;

}

else
cout<<"-1"<<endl;

}
return 0;
 }

2 Ответов

Рейтинг:
2

CPallini

Цитата:
for (int i=0; i<n; i++)
{
for(int j=0; j<n; j++)
{
В1=*max_element(ВМК.начать(), ВМК.конец());
Макс.push_back(В1);
}
}
Должно быть вместо этого
for (int i=0; i<n; i++)
{
   v1 = *max_element(vec[i].begin(), vec[i].end());
   max.push_back(v1);
}


CodeBlooded

Спасибо, эта помощь, однако, я хотел бы спросить еще кое о чем. Я хочу получить такой результат, как пусть 2d-вектор будет

1 2 3
4 5 6
7 8 9

выход должен быть 18.

Итак, обозначим элемент, выбранный из последовательности Mi с помощью Ai. Для каждого i (2 ≤ i ≤ N) Ai больше, чем Ai-1.

Вычислите максимально возможное значение A1 + A2 + ... + A_N. Если невозможно выбрать элементы A1, A2, ..., A_N, выведите вместо них -1.

но, похоже, в моем коде все еще есть проблема, которую я не могу понять.

Рейтинг:
0

Patrice T

Вы пытаетесь решить эту проблему Страница Конкурса | CodeChef[^].
Как обычно, задачи CodeChef не предназначены для начинающих, и, к сожалению, вы слишком быстро прочитали требования и неправильно их поняли. Все детали на счету.
Кто-то еще обратился за помощью, прочитал данные ответы, они должны помочь вам понять.
Может ли кто-нибудь сказать мне, пожалуйста, почему этот код не принимается? Примечание:Я не прошу решения, просто скажите мне, где этот код терпит неудачу[^]