#include <bits/stdc++.h>
#define ll long long
#define get(a) scanf("%lld", &a);
#define rep(n) for( ll i = 1; i <= n; i++ )
#define repVector(v) for( typeof(v.begin()) it = v.begin(); it != v.end(); it++ )
#define repSet(s) for( typeof(s.begin()) it = s.begin(); it != s.end(); it++ )
#define all(c) c.begin(), c.end()
#define MEM(a,b) memset(a,(b),sizeof(a))
#define eb emplace_back
#define pb push_back
#define absol(a) ( ( a >= 0 ) ? a : -a )
#define FOR(i,a,b) for( ll i = a; i <= b; i++ )
#define matrix vector< vector<ll> >
#define F first
#define S second
#define mp make_pair
#define L 2*r
#define R 2*r+1
#define MOD 100007
#define INPFILE freopen("input.in","r",stdin)
using namespace std;
ll color[105][105] , cost[105][105] , v[105] = {0};
ll colorsum( ll i ,ll j ){
ll sum = 0;
FOR( k,i,j )
sum = (sum + v[k])%100;
return sum;
}
// Didnt understand why it is wrong!
int main(){
ll n;
while( scanf("%lld",&n ) > 0 ){
MEM(cost,MOD); MEM(color,0);
MEM(v,0);
FOR( i,1,n )
get(v[i]);
ll sum,j;
//Initialize
FOR(i,1,n)
cost[i][i] = v[i];
FOR(i,1,n-1){
j = i + 1;
cost[i][j] = v[i]*v[j];
}
//Logic
FOR( l,3,n ){
FOR( i,1,n-l+1 ){
j = i + l - 1;
cost[i][j] = min( cost[i][j-1] + colorsum(i,j-1)*cost[j][j] , cost[i+1][j] + colorsum(i+1,j)*cost[i][i] );
}
}
cout<<cost[1][n]<<endl;
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgZ2V0KGEpIHNjYW5mKCIlbGxkIiwgJmEpOwojZGVmaW5lIHJlcChuKSBmb3IoIGxsIGkgPSAxOyBpIDw9IG47IGkrKyApCiNkZWZpbmUgcmVwVmVjdG9yKHYpICBmb3IoIHR5cGVvZih2LmJlZ2luKCkpIGl0ID0gdi5iZWdpbigpOyBpdCAhPSB2LmVuZCgpOyBpdCsrICkKI2RlZmluZSByZXBTZXQocykgZm9yKCB0eXBlb2Yocy5iZWdpbigpKSBpdCA9IHMuYmVnaW4oKTsgaXQgIT0gcy5lbmQoKTsgaXQrKyApCiNkZWZpbmUgYWxsKGMpIGMuYmVnaW4oKSwgYy5lbmQoKQojZGVmaW5lIE1FTShhLGIpIG1lbXNldChhLChiKSxzaXplb2YoYSkpCiNkZWZpbmUgZWIgZW1wbGFjZV9iYWNrCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgYWJzb2woYSkgKCAoIGEgPj0gMCApID8gYSA6IC1hICkKI2RlZmluZSBGT1IoaSxhLGIpIGZvciggbGwgaSA9IGE7IGkgPD0gYjsgaSsrICkKI2RlZmluZSBtYXRyaXggdmVjdG9yPCB2ZWN0b3I8bGw+ID4KI2RlZmluZSBGIGZpcnN0CiNkZWZpbmUgUyBzZWNvbmQKI2RlZmluZSBtcCBtYWtlX3BhaXIKI2RlZmluZSBMIDIqcgojZGVmaW5lIFIgMipyKzEKI2RlZmluZSBNT0QgMTAwMDA3CiNkZWZpbmUgSU5QRklMRSBmcmVvcGVuKCJpbnB1dC5pbiIsInIiLHN0ZGluKQp1c2luZyBuYW1lc3BhY2Ugc3RkOwpsbCBjb2xvclsxMDVdWzEwNV0gLCBjb3N0WzEwNV1bMTA1XSAsIHZbMTA1XSA9IHswfTsgCgpsbCBjb2xvcnN1bSggbGwgaSAsbGwgaiApewoJbGwgc3VtID0gMDsKCUZPUiggayxpLGogKQoJCXN1bSA9IChzdW0gKyB2W2tdKSUxMDA7CglyZXR1cm4gc3VtOwp9CgovLyBEaWRudCB1bmRlcnN0YW5kIHdoeSBpdCBpcyB3cm9uZyEKaW50IG1haW4oKXsKCWxsIG47Cgl3aGlsZSggc2NhbmYoIiVsbGQiLCZuICkgPiAwICl7CgkJTUVNKGNvc3QsTU9EKTsgTUVNKGNvbG9yLDApOwoJCU1FTSh2LDApOwoJCUZPUiggaSwxLG4gKQoJCQlnZXQodltpXSk7CgkJbGwgc3VtLGo7CgkJLy9Jbml0aWFsaXplCgkJRk9SKGksMSxuKQoJCQljb3N0W2ldW2ldID0gdltpXTsKCQkJCgkJRk9SKGksMSxuLTEpewoJCQlqID0gaSArIDE7IAoJCQljb3N0W2ldW2pdID0gdltpXSp2W2pdOwoJCX0KCQkKCQkvL0xvZ2ljCgkJRk9SKCBsLDMsbiApewoJCQlGT1IoIGksMSxuLWwrMSApewoJCQkJaiA9IGkgKyBsIC0gMTsKCQkJCWNvc3RbaV1bal0gPSBtaW4oIGNvc3RbaV1bai0xXSArIGNvbG9yc3VtKGksai0xKSpjb3N0W2pdW2pdICwgY29zdFtpKzFdW2pdICsgY29sb3JzdW0oaSsxLGopKmNvc3RbaV1baV0gKTsKCQkJfQoJCX0KCQljb3V0PDxjb3N0WzFdW25dPDxlbmRsOwoJfQp9CgkJCQkgCgkJCgkJCQkKCQkKCQkKCQkJCgkJCQk=