Cod sursa(job #201751)

Utilizator alexeiIacob Radu alexei Data 3 august 2008 14:54:24
Problema Grigo Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.47 kb
#include<stdio.h>
#define nmax 100024
bool ok[nmax];
int sol[nmax];
const int much=1000003;
int main()
{freopen("gropi.in","r",stdin);
 freopen("gropi.out","w",stdout);
 int N,M;
 scanf("%d%d",&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);
          sol[i]%=much;}
 }
 printf("%d\n",sol[N]);
    return 0;
}