#include #include #include #include #include #include #include #include #include #include #include static const int MOD = 998244353; using ll = long long; using uint = unsigned; using ull = unsigned long long; using namespace std; template constexpr T INF = ::numeric_limits::max() / 32 * 15 + 208; int main() { int n; cin >> n; vector A(n); for (auto &&i : A) scanf("%d", &i); vector> rle; rle.emplace_back(A[0], 1); for (int i = 1; i < n; ++i) { if(A[i] == rle.back().first){ rle.back().second++; }else { rle.emplace_back(A[i], 1); } } ll ans = (ll)n*(n+1)/2; for (auto &&i: rle) { if(i.first == 1){ ans -= (ll)i.second*(i.second+1)/2; } } cout << ans << endl; return 0; }