結果

問題 No.1331 Moving Penguin
ユーザー shiomusubi496shiomusubi496
提出日時 2021-01-08 22:16:21
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 515 bytes
コンパイル時間 1,629 ms
コンパイル使用メモリ 173,112 KB
実行使用メモリ 6,824 KB
最終ジャッジ日時 2024-11-16 12:45:28
合計ジャッジ時間 20,071 ms
ジャッジサーバーID
(参考情報)
judge3 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 9 WA * 40
権限があれば一括ダウンロードができます

ソースコード

diff #

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int mod=1000000007;
signed main(){
  int N;cin>>N;
  int S=sqrt(N);
  vector<int> dp(N);dp[0]=1;
  vector<vector<int>>A(S,vector<int>(S));
  for(int i=0;i<N-1;i++){
    int a;cin>>a;
    if(a<S){
      dp[i]=A[a][i%a]=(dp[i]+A[a][i%a])%mod;
    }else{
      for(int j=i+a;j<N;j+=a)dp[j]=(dp[j]+dp[i])%mod;
    }
    if(a!=1)dp[i+1]=(dp[i+1]+dp[i])%mod;
    for(int j=1;j<S;j++)dp[i+1]=(dp[i+1]+A[j][(i+1)%j])%mod;
  }
  cout<<dp[N-1]<<endl;
}
0