Cod sursa(job #792699)
Utilizator | Stefan Teodorescu Stefex09 | Data | 29 septembrie 2012 10:35:42 |
---|---|---|---|
Problema | Grigo | Scor | 50 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.5 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("grigo.in");
ofstream out ("grigo.out");
const int MAXN = 100010;
const int MOD = 1000003;
int Sol[MAXN];
bool visible[MAXN];
int main ()
{
int N, M, x, i;
in >> N >> M;
for (i = 1; i <= M; i ++)
in >> x, visible[x] = 1;
Sol[0] = 1;
for (i = 1; i <= N; i ++)
if (visible[i])
Sol[i] = Sol[i - 1];
else
Sol[i] = ((i - 1) * Sol[i - 1]) % MOD;
out << Sol[N];
return 0;
}