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 |
|
|
| 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 |