#include <bits/stdc++.h>
using namespace std;
bool isPrime(int a) {
  if (a <= 1) return false;
  if (a == 2) return false;
  if (a % 2 == 0) return false;
  for (int i = 3; i < sqrt(a); i += 2)
    if (a % i == 0) return false;
  return true;
}
int GCD(int a, int b) {
  if (b == 0) return a;
  return GCD(b, a % b);
}
int LCM(int a, int b) { return a * b / GCD(a, b); }
int getInt() {
  int x = 0;
  scanf("%d", &x);
  return x;
}
char getChar() {
  char x = ' ';
  scanf("%c", &x);
  return x;
}
string getString() {
  char c[1024] = "";
  scanf("%s", c);
  return c;
}
long long getLong() {
  long long x = 0;
  scanf("%lld", &x);
  return x;
}
void fileIO() {
  freopen("input.txt", "r", stdin);
  freopen("output.txt", "w", stdout);
}
void sfileIO() {
  freopen("A-small-attempt0.in", "r", stdin);
  freopen("A-small-attempt0.out", "w", stdout);
}
void lfileIO() {
  freopen("A-large.in", "r", stdin);
  freopen("A-large.out", "w", stdout);
}
int c2i(char c) {
  int i = 0;
  i = (int)c;
  i = i - 48;
  if (i >= 0 && i <= 9)
    return i;
  else
    return -1;
}
char i2c(int i) {
  char c;
  c = (char)i;
  c = c + '0';
  if (i >= 0 && i <= 9)
    return c;
  else
    return '0';
}
int countchar(string s, char c) {
  int i = 0;
  for (int j = 0; j < s.length(); j++)
    if (s[j] == c) i++;
  return i;
}
vector<string> ex2s(string s, char c) {
  vector<string> vs;
  string tmp = "";
  for (int i = 0; i < s.length(); i++) {
    if (s[i] == c) {
      vs.push_back((tmp));
      tmp = "";
      continue;
    }
    tmp = tmp + s[i];
  }
  if (tmp != "") vs.push_back((tmp));
  return vs;
}
string ia2s(int a[], int sz) {
  string c = "";
  stringstream ss;
  for (int i = 0; i < sz; i++) {
    ss << a[i];
  }
  ss >> c;
  return c;
}
int* s2ia(string s, int ar[50]) {
  ar[0] = 0;
  for (int i = 1; i <= s.length(); i++) {
    ar[i] = c2i(s[i - 1]);
    ar[0]++;
  }
  return ar;
}
string ca2s(char a[], int sz) {
  string c = "";
  stringstream ss;
  for (int i = 0; i < sz; i++) {
    ss << a[i];
  }
  ss >> c;
  return c;
}
string di2s(int i) {
  string s = "";
  int p;
  char c;
  while (i) {
    p = i % 10;
    c = '0' + (char)p;
    s = c + s;
    i = i / 10;
  }
  if (s == "") s = s + '0';
  return s;
}
void di2ca(int i, char* c) {
  int p;
  int j = 1;
  while (i) {
    p = i % 10;
    c[j] = '0' + (char)p;
    j++;
    i = i / 10;
  }
  if (j == 1)
    c[0] = 0;
  else
    c[0] = j;
  c[j] = '\0';
}
int s2i(string s) {
  int i, l;
  l = s.length();
  i = (int)(s[0] - '0');
  for (int j = 1; j < l; j++) i = i * 10 + (int)(s[j] - '0');
  return i;
}
char toup(char c) {
  if (c >= 'a' && c <= 'z') return c - ' ';
  return NULL;
}
char tolo(char c) {
  if (c >= 'A' && c <= 'Z') return c + ' ';
  return NULL;
}
char toswap(char c) {
  if (c >= 'A' && c <= 'Z')
    return c + ' ';
  else if (c >= 'a' && c <= 'z')
    return c - ' ';
  return NULL;
}
const int INFIN = 1000000000;
int main(int argc, char** argv) {
  long long n;
  vector<long long> opt;
  cin >> n;
  for (long long i = 0; i < n; ++i) {
    long long temp;
    cin >> temp;
    opt.push_back((temp));
  }
  long long ret = 0;
  for (long long i = 0; i < n; ++i) {
    if (i == 0)
      ret += opt[i];
    else if (opt[i] == 1)
      ret += 1;
    else
      ret += ((i + 1) * (opt[i] - 1) + 1);
  }
  cout << ret;
  return 0;
}
