Plusle and Minun on Array Solution || Codechef Starters - 29

           

Plusle and Minun on Array Solution 

Codechef Starters - 29
Problem Code : PMA

Solution :

#include <bits/stdc++.h>
#define ll long long int
#define ull unsigned long long int
using namespace std;

ll maxe(ll a[], ll n)
{
    ll ans = a[1];
    for (ll i = 1; i < n; i += 2)
    {
        if (a[i] > ans)
            ans = a[i];
    }
    return ans;
}

ll mine(ll a[], ll n)
{
    ll ans = a[0];
    for (ll i = 0; i < n; i += 2)
    {
        if (a[i] < ans)
            ans = a[i];
    }
    return ans;
}

void solve()
{
    ll n;
    cin >> n;
    ll a[n];
    for (ll i = 0; i < n; i++)
    {
        cin >> a[i];
        if (a[i] < 0)
        {
            a[i] = -1 * a[i];
        }
    }
    ll first = maxe(a, n);
    ll second = mine(a, n);
    ll ans1 = 0;
    for (ll i = 0; i < n; i++)
    {
        if (i % 2 == 0)
        {
            ans1 += a[i];
        }
        else
        {
            ans1 -= a[i];
        }
    }

    ll ans2 = ans1 + 2 * first - 2 * second;

    cout << max(ans1, ans2) << "\n";
}

int main()
{
    ll t;
    cin >> t;
    while (t--)
    {
        solve();
    }
}

Comments