Cod sursa(job #197818)

Utilizator ScrazyRobert Szasz Scrazy Data 6 iulie 2008 15:31:52
Problema Grigo Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.49 kb
#include <cstdio>

const int maxn = 100002;
const int mod = 1000003;
int n, m;
int a[maxn], dp[maxn];

int main()
{
    freopen("grigo.in","r",stdin);
    freopen("grigo.out","w",stdout);

    scanf("%d %d", &n, &m); 
    //fprintf(stderr,"%d %d\n", n, m);
    int i;
    for (i = 1; i <= m; ++i)
    {
	int j;
	scanf("%d", &j);
	a[j] = 1;
    }

    dp[1] = 1;
    for (i = 2; i <= n; ++i)
	if (a[i]) dp[i] = dp[i-1];
	else dp[i] = ((i-1) * dp[i-1]) % mod;

    printf("%d", dp[n]); 

    return 0;

}