Submission #689666

#TimeUsernameProblemLanguageResultExecution timeMemory
689666true22Discharging (NOI20_discharging)C++14
9 / 100
89 ms8376 KiB
#include <bits/stdc++.h>
using namespace std;

typedef long long int ll;
typedef long double ld;

typedef pair<ll, ll> pl;
typedef vector<ll> vl;   
typedef vector<pl> vp;

#define nl "\n"
#define fr first
#define sc second
#define pb push_back

#define all(x) x.begin(), x.end()
#define fur(i, a, b) for(ll i = a; i <= b; ++i)
#define ruf(i, a, b) for(ll i = a; i >= b; --i)
#define pv(x) for(auto k : x){cout << k << " ";} cout << nl

ll n;
vl t;

void solve(){
    // n <= 3
    
    if (n == 1){
        cout << t[1] << nl;
    }else if (n == 2){
        cout << min(t[1] + t[1] + t[2], max(t[1], t[2]) * 2);
        
    }else{
        
        ll a = t[1];
        ll b = t[2];
        ll c = t[3];
        // a b c
        ll op1 = a + (a + b) + (a + b + c);
        // ab c
        ll op2 = (max(a, b) * 2) + max(a, b) + c;
        // a bc
        ll op3 = a + (a + max(b, c)) * 2;

        // abc
        ll op4 = max(a, max(b, c)) * 3;
        cout << min(min(op1, op2), min(op3, op4));
        
    }
}

int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);


    cin >> n;
    t.resize(n + 1);
    fur(i, 1, n)
        cin >> t[i];

    solve();

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...