Cod sursa(job #198186)

Utilizator floringh06Florin Ghesu floringh06 Data 9 iulie 2008 13:44:37
Problema Grigo Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <cstdio>
#include <cstring>

using namespace std;

#define FIN "grigo.in"
#define FOUT "grigo.out"
#define MAX_N 101005
#define MOD 1000003

int A[MAX_N];
long long V[MAX_N];
int N, M;

    int main ()
    {
        freopen (FIN, "r", stdin);
        freopen (FOUT, "w", stdout);
        

        scanf ("%d %d", &N, &M);
        int i, j, x;
        for (i = 1; i <= M; ++i)
             scanf ("%d", &x), A[x] = 1;
        
        V[1] = 1;
        for (i = 2; i <= N; ++i)
            if (A[i]) V[i] = V[i - 1];
               else V[i] = (long long)((i - 1)*V[i - 1]) % MOD;
        
        printf ("%lld\n", (int)V[N]);
        
        return 0;
    }