Encrypting your link and protect the link from viruses, malware, thief, etc! Made your link safe to visit.

 Question

Please help me code this in C++

Sample Input:

1

4

1 2 3 4

Sample Output:

16

Solution

Step 1

Here is the detailed and simplified C++ code for the above listed problem statement:

Step 2

C++ Code:

 

#include <bits/stdc++.h>
#define fastIo ios_base::sync_with_stdio(false), cin.tie(NULL), cout.tie(NULL)
#define all(v) (v).begin(), (v).end()
#define rall(v) (v).rbegin(), (v).rend()
#define fi first
#define se second
#define sz size
#define pb push_back
#define mp make_pair
using namespace std;

const double EPS = 1e-9;
const double PI = 3.141592653589793238462;

const int dr[] = {1, 1, 0, -1, -1, -1, 0, 1};
const int dc[] = {0, 1, 1, 1, 0, -1, -1, -1};

const int dx[] = {1, 0, -1, 0};
const int dy[] = {0, 1, 0, -1};

typedef long long ll;

ll a[65], minR[65][65], sum[65][65];
ll dp[65][65];

ll getMin(int i, int j) {
  if (i > j) return -1000000000LL * 60LL - 1LL;
  return minR[i][j];
}

ll solve(int lef, int rig) {
  if (lef + 1 == rig) {
    return minR[lef][rig] * 2;
  }
  if (dp[lef][rig] != -1000000000LL * 60LL - 1LL) {
    return dp[lef][rig];
  }
  ll ret = minR[lef][rig] * (rig - lef + 1);
  for (int l = lef + 1; l < rig; l++) {
    ret = max(ret, solve(l, rig) + min(minR[lef][l - 1], sum[l][rig]) * ((l - 1) - lef + 1 + 1));
    ret = max(ret, solve(lef, l) + min(minR[l + 1][rig], sum[lef][l]) * (rig - (l + 1) + 1 + 1));
    for (int r = l + 1; r < rig; r++) {
      ll cur = solve(lef, l) + solve(r, rig);
      if (r == l + 1) {
        ll add = min(sum[lef][l], sum[r][rig]);
        ret = max(ret, cur + 2 * add);
      } else {
        ll add = min(sum[lef][l], min(sum[r][rig], getMin(l + 1, r - 1)));
        ret = max(ret, cur + (r - 1 - (l + 1) + 1 + 2) * add);
      }
    }
  }
  return dp[lef][rig] = ret;
}

void solve() {
  int n;
  cin >> n;
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
  }
  for (int i = 1; i <= n; i++) {
    minR[i][i] = sum[i][i] = a[i];
    for (int j = i + 1; j <= n; j++) {
      minR[i][j] = min(minR[i][j - 1], a[j]);
      sum[i][j] = sum[i][j - 1] + a[j];
    }
  }
  for (int i = 1; i < 65; i++) {
      for (int j = 1; j < 65; j++) {
          dp[i][j] = -1000000000LL * 60LL - 1LL;
      }
  }
  cout << solve(1, n) << '\n';
}
int main() {
  fastIo;
  int t; cin >> t;
  while (t--) {
    solve();
  }
  return 0;
}

 

Output:

Computer Engineering homework question answer, step 2, image 1

ST

Search This Blog

Labels

Report Abuse

A palindrome is a number or a text phrase that reads the same backwards as forwards. For example, each of the following five-digit integers is a palindrome: 12321, 55555, 45554 and 11611. Write a C++ program that reads in a five-digit integer and determines whether it is a palindrome .

Question: A palindrome is a number or a text phrase that reads the same backwards as forwards. For example, each of the following five-digit integers is a palindrome: 12321, 55555, 45554 and 11611. Write a C++ program that reads in a five-digit integer and determines whether it is a palindrome . Answer: Step 1 PROGRAMING CODE:   #include <stdio.h> int main() {   int n, a, b, c, d, e;   int digit = 0;   printf( "Enter one 5 digit number: \n" );   scanf( "%d", &n );   a = n / 10000;   b = n / 1000 % 10;   c = n / 100 % 10;   d = n / 10 % 10;   e = n % 10;   if ( a == e && b == d ) {     printf( "Palindrome!\n" );   }   if ( a != e || b != d ) {     printf( "Not a palindrome.. :(\n" );   }   return 0; } PROGRAM SCREENSHOT: Step 2

QUESTION 6 (a) The bar shown in Figure Q2(a) is subjected to tensile load of 150 Kn. If the stress in the middle portions is limited to 160 N/mm², determine the diameter of the middle portion. Find also the length of the middle portion if the total elongation of the bar is to be 0.25 mm. E E = 2.0 + 105N/mm². (12 marks) 150 KN 10 cm DIA 10 cm DIA 150 KN 45 cm Figure Q6(a) (b) A brass bar, having cross-section area of 900 mm², is subjected to axial forces as shown in Figure Q2(b), in which AB = 0.6 m, BC = 0.8 m, and CD = 1.0 m. Find the total elongation of the bar. E = 1.0 + 105N/mm2 . (8 marks) Page 4 of 5 B D 40 KN 70 KN 20 KN 10 KN Figure Q6(b) (TOTAL = 20 MARKS)

  Question: Show transcribed image text Answer:

Contributors