Pagini recente » Cod sursa (job #91343) | Vă mulțumim pentru sprijin! 2% pentru infoarena | Rating maciuca sorina (sorina_96) | Cod sursa (job #1551609) | Cod sursa (job #2037337)
// 15 pct
#include <bits/stdc++.h>
#define Nmax 1000001
#define Mmax 1001
#define Kmax 20
#define MOD 9901
using namespace std;
ifstream f("pod.in");
ofstream g("pod.out");
int v[Kmax+1];
int good[Mmax];
int main()
{
int n,m,i,k,x;
f>>n>>m>>k;
for(i=1;i<=m;i++)
f>>good[i];
sort(good+1,good+m+1);
bool ok=false;
int poz=1;
for(i=1;i<k;i++)
if(i==good[poz])
{
++poz;
ok=true;
}
else if(!ok) v[i]=1;
v[k]=v[k-1]+1;
for(i=k+1;i<=n;i++)
if(i==good[poz])
++poz;
else
v[i%Kmax]=(v[(i-1)%Kmax]+v[(i-k)%Kmax])%MOD;
g<<v[n%20];
return 0;
}