Cod sursa(job #3358154)

Utilizator CarenaMironov Cezar Luca Carena Data 14 iunie 2026 22:28:35
Problema Pod Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <fstream>
#include <set>
#include <cassert>

using namespace std;

ifstream in("pod.in");
ofstream out("pod.out");

const int MMAX=1e3+5, NMAX=1e6+5, MOD=9901;
int n, m, k, dp[NMAX];
set<int> brk;

int main()
{
    in>>n>>m>>k;
    assert(k!=1);
    if(k==1)
    {
        out<<((m==0)?1:0);
        return 0;
    }
    for(int i=1;i<=m;i++)
    {
        int x; in>>x;
        brk.insert(x);
    }
    dp[0]=1;
    for(int i=1;i<=n;i++)
    {
        dp[i]=dp[i-1]+dp[i-k];
        if(brk.find(i)!=brk.end())
            dp[i]=0;
    }
    out<<dp[n];
    return 0;
}