Pagini recente » Cod sursa (job #1256005) | Cod sursa (job #494085) | Cod sursa (job #1702600) | Cod sursa (job #1767664) | Cod sursa (job #2022073)
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
int v[100001];
int main()
{
FILE*fi,*fo;
fi = fopen("grigo.in","r");
fo = fopen("grigo.out","w");
int n, m;
fscanf(fi,"%d%d", &n, &m);
for(int i = 0; i < m; i++)
fscanf(fi,"%d", &v[i]);
v[m] = n + 1;
std::sort(v, v+m);
int r = n;
long long rez = 1;
for(int i = m - 1; i >= 0; i--){
r--;
int c = v[i + 1] - v[i] - 1;
while(c > 0){
rez *= r;
r--;
c--;
}
}
while(r > 0){
rez *= r;
r--;
}
fprintf(fo,"%lld", rez);
fclose(fi);
fclose(fo);
return 0;
}