Computer >> Máy Tính >  >> Lập trình >> C ++

Tổng tối đa của các phần tử thứ tự tăng dần từ n mảng trong C ++

Trong hướng dẫn này, chúng ta sẽ thảo luận về một chương trình để tìm tổng số tối đa của các phần tử có thứ tự tăng dần từ n mảng.

Đối với điều này, chúng tôi sẽ được cung cấp với N mảng có kích thước M. Nhiệm vụ của chúng ta là tìm tổng lớn nhất bằng cách chọn một phần tử từ mỗi mảng sao cho phần tử từ mảng trước nhỏ hơn phần sau.

Ví dụ

#include <bits/stdc++.h>
#define M 4
using namespace std;
//calculating maximum sum by selecting
//one element
int maximumSum(int a[][M], int n) {
   for (int i = 0; i < n; i++)
      sort(a[i], a[i] + M);
   int sum = a[n - 1][M - 1];
   int prev = a[n - 1][M - 1];
   int i, j;
   for (i = n - 2; i >= 0; i--) {
      for (j = M - 1; j >= 0; j--) {
         if (a[i][j] < prev) {
            prev = a[i][j];
            sum += prev;
            break;
         }
      }
      if (j == -1)
         return 0;
   }
   return sum;
}
int main() {
   int arr[][M] = {
      {1, 7, 3, 4},
      {4, 2, 5, 1},
      {9, 5, 1, 8}
   };
   int n = sizeof(arr) / sizeof(arr[0]);
   cout << maximumSum(arr, n);
return 0;
}

Đầu ra

18