Cod sursa(job #201752)
Utilizator | Data | 3 august 2008 15:00:40 | |
---|---|---|---|
Problema | Grigo | Scor | 50 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.45 kb |
#include<stdio.h>
#define nmax 100024
bool ok[nmax];
int sol[nmax];
const int much=1000003;
int main()
{freopen("grigo.in","r",stdin);
freopen("grigo.out","w",stdout);
int N,M;
scanf("%d%d\n",&N,&M);
int i,a1;sol[1]=1;
while( M-- ){
scanf("%d",&a1);
ok[a1]=true;
}
for(i=2; i<=N; ++i){
if( ok[i] )
sol[i]=sol[i-1];
else
sol[i]=sol[i-1]*(i-1)%much;
}
printf("%d\n",sol[N]);
return 0;
}