Pagini recente » Rating Raul Ciure (raulciure) | Cod sursa (job #1301418) | Cod sursa (job #1140314) | Monitorul de evaluare | Cod sursa (job #1886714)
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <algorithm>
#define N 1010
#define LMAX 50
#define MOD 9901
using namespace std;
int lips [ N ];
int steps [ LMAX ];
int main(){
int n , m , k , i , cr ;
freopen("pod.in","r",stdin);
freopen("pod.out","w",stdout);
scanf("%d %d %d",&n ,&m ,& k);
for ( i = 0 ; i < m ;i++) {
scanf("%d",&lips[ i ] );
}
sort ( lips ,lips + m );
steps [ 0 ] = 1 ;
int ActualWoodIndex = 0 ;
for ( i = 1 ; i <= n ; i ++ ){
cr = i % LMAX ;
steps [ cr ] = 0 ;
if ( lips [ ActualWoodIndex ] == i ){
steps [ cr ] = 0 ;
ActualWoodIndex ++ ;
continue ;
}
steps [ cr ] += steps [ ( cr - 1 + LMAX ) % LMAX ] + steps [ (cr - k + LMAX) % LMAX ];
steps [ cr ]%= MOD ;
}
printf("%d",steps [ cr ] );
return 0;
}