提出 #23367542
ソースコード 拡げる
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int read()
{
int a=0,f=1,c=getchar();
while(!isdigit(c))
{
if(c=='-')f=-1;
c=getchar();
}
while(isdigit(c))
{
a=a*10+c-'0';
c=getchar();
}
return a*f;
}
const int N=1e5+10;
const int P=1e9+7;
ll mod(ll x){return (x%P+P)%P;}
int n;
int a[N];
ll f[2][N],g[2][N];
int main()
{
// freopen("1.in","r",stdin);
n=read();
for(int i=1;i<=n;++i)a[i]=read();
f[0][1]=1;
g[0][1]=a[1];
for(int i=2;i<=n;++i)
{
f[0][i]=mod(f[0][i-1]+f[1][i-1]);
f[1][i]=f[0][i-1];
g[0][i]=mod(g[0][i-1]+g[1][i-1]+a[i]*f[0][i]);
g[1][i]=mod(g[0][i-1]-a[i]*f[1][i]);
}
printf("%lld\n",mod(g[0][n]+g[1][n]));
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | A - Many Formulae |
| ユーザ | WhereIsDodoco |
| 言語 | C++ (GCC 9.2.1) |
| 得点 | 400 |
| コード長 | 747 Byte |
| 結果 | AC |
| 実行時間 | 17 ms |
| メモリ | 7244 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 400 / 400 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| 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 |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 00-sample-001.txt | AC | 8 ms | 3692 KiB |
| 00-sample-002.txt | AC | 2 ms | 3480 KiB |
| 00-sample-003.txt | AC | 2 ms | 3692 KiB |
| 01-001.txt | AC | 2 ms | 3632 KiB |
| 01-002.txt | AC | 2 ms | 3536 KiB |
| 01-003.txt | AC | 2 ms | 3692 KiB |
| 01-004.txt | AC | 8 ms | 5712 KiB |
| 01-005.txt | AC | 6 ms | 4924 KiB |
| 01-006.txt | AC | 7 ms | 5056 KiB |
| 01-007.txt | AC | 6 ms | 4584 KiB |
| 01-008.txt | AC | 14 ms | 6184 KiB |
| 01-009.txt | AC | 17 ms | 7036 KiB |
| 01-010.txt | AC | 14 ms | 6976 KiB |
| 01-011.txt | AC | 15 ms | 7184 KiB |
| 01-012.txt | AC | 13 ms | 7244 KiB |
| 01-013.txt | AC | 17 ms | 7088 KiB |
| 01-014.txt | AC | 13 ms | 7184 KiB |