CCCPaste

Untitled

#include 
#include 
using namespace std;
typedef long long ll;
ll arr[111], dp[111][111];
ll sum(int i, int j) {
    ll result = 0;
    for(int k = i; k <= j; k++) {
        result += arr[k];
        result %= 100;
    }
    return result;
}
ll rec(int i, int j) {
    if(i >= j) {
        return 0;
    }
    if(i + 1 == j) {
        return arr[i] * arr[j];
    }
    if(dp[i][j] != -1) {
        return dp[i][j];
    }
    ll result = 2e15;
    for(int k = i; k < j; k++) {
        result = min(result, rec(i, k) + rec(k + 1, j) + sum(i, k) * sum(k + 1, j));
    }
    return dp[i][j] = result;
}
int main() {
    ios_base::sync_with_stdio(false);
   
    int n;
    while(cin >> n) {

        for(int i = 0; i < n; i++) {
            cin >> arr[i];
        }
        memset(dp, -1, sizeof dp);
        cout << rec(0, n - 1) << endl;
    }
    return 0;
}