Cod sursa(job #198058)

Utilizator tvladTataranu Vlad tvlad Data 8 iulie 2008 11:53:16
Problema Grigo Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.51 kb
#include <cstdio>
#include <algorithm>
using namespace std;

const int MOD = 1000003;
const int N = 100000;

int n,m;
int p[N];
int d[N];

int main() {
	freopen("grigo.in","rt",stdin);
	freopen("grigo.out","wt",stdout);
	scanf("%d %d",&n,&m);
	for (int i = 0; i < m; ++i) {
		scanf("%d",&p[i]);
		--p[i];
	}
	sort(p,p+m);
	d[0] = 1;
	for (int i = 1, t = 1; i < n; ++i) {
		if (i == p[t])
			d[i] = d[i-1]; else
			d[i] = ((long long)i*d[i-1]) % MOD;
	}
	printf("%d\n",d[n-1]);
	return 0;
}