Submission #28445829


Source Code Expand

#include <bits/stdc++.h>
#include <atcoder/all>
using namespace atcoder;
// using mint = modint998244353;
using mint = modint1000000007;
#define all(v) (v).begin(), (v).end()
#define rall(v) (v).rbegin(), (v).rend()
#define rep(i,n) for (int i = 0; i < (n); ++i)
#define rep2(i,k,n) for (int i = (k); i < (n); ++i)
using namespace std;
using ll = long long;
// using P = pair<ll,ll>;
using P = pair<int,int>;
using vvi = vector<vector<int>>;
using vi = vector<int>;
using vvl = vector<vector<ll>>;

// const ll INF = (ll)1e18;
// const int INF = (int)1e9+7;
template<typename T>
void chmin(T &a, T b) { a = min(a, b); }
template<typename T>
void chmax(T &a, T b) { a = max(a, b); }

template<typename T>
void print(vector<T> v) {
    int n = v.size();
    rep(i,n) {
        if (i == 0) cout << v[i].val();
        else cout << ' ' << v[i].val();
    }
    cout << endl;
}

void solve() {
    int n;
    cin >> n;
    vector<ll> a(n+1);
    rep(i,n) cin >> a[i+1];

    vector<vector<mint>> dp(n+1, vector<mint>(2, 0)), mul(n+1, vector<mint>(2, 0));
    dp[1][0] = a[1];
    mul[1][0] = 1;
    rep2(i,2,n+1) {
        mul[i][0] = mul[i-1][0] + mul[i-1][1];
        mul[i][1] = mul[i-1][0];
        dp[i][0] = dp[i-1][0] + dp[i-1][1] + mul[i][0] * a[i];
        dp[i][1] = dp[i-1][0] - mul[i][1] * a[i];
    }

    cout << (dp[n][0] + dp[n][1]).val() << endl;
}

int main() {
    solve();
    return 0;
}

Submission Info

Submission Time
Task A - Many Formulae
User goropikari
Language C++ (GCC 9.2.1)
Score 400
Code Size 1461 Byte
Status AC
Exec Time 54 ms
Memory 14860 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 3
AC × 17
Set Name Test Cases
Sample 00-sample-001.txt, 00-sample-002.txt, 00-sample-003.txt
All 00-sample-001.txt, 00-sample-002.txt, 00-sample-003.txt, 01-001.txt, 01-002.txt, 01-003.txt, 01-004.txt, 01-005.txt, 01-006.txt, 01-007.txt, 01-008.txt, 01-009.txt, 01-010.txt, 01-011.txt, 01-012.txt, 01-013.txt, 01-014.txt
Case Name Status Exec Time Memory
00-sample-001.txt AC 7 ms 3556 KiB
00-sample-002.txt AC 2 ms 3500 KiB
00-sample-003.txt AC 2 ms 3516 KiB
01-001.txt AC 2 ms 3552 KiB
01-002.txt AC 2 ms 3556 KiB
01-003.txt AC 2 ms 3556 KiB
01-004.txt AC 41 ms 10600 KiB
01-005.txt AC 30 ms 7732 KiB
01-006.txt AC 23 ms 7884 KiB
01-007.txt AC 20 ms 6836 KiB
01-008.txt AC 41 ms 11384 KiB
01-009.txt AC 53 ms 14696 KiB
01-010.txt AC 54 ms 14704 KiB
01-011.txt AC 54 ms 14860 KiB
01-012.txt AC 49 ms 14780 KiB
01-013.txt AC 54 ms 14704 KiB
01-014.txt AC 54 ms 14828 KiB