Cod sursa(job #198183)

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

using namespace std;

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

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

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

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