Pagini recente » Cod sursa (job #2777467) | Cod sursa (job #1551850) | Cod sursa (job #1540374) | Cod sursa (job #20983) | Cod sursa (job #516585)
Cod sursa(job #516585)
#include <iostream>
#include <fstream>
using namespace std;
const char iname[] = "grigo.in";
const char oname[] = "grigo.out";
const int nmax = 100005;
ifstream fin(iname);
ofstream fout(oname);
int n, k, vis[nmax], i, p[nmax], x, ct, last;
int main()
{
fin >> n >> k;
for(i = 1; i <= k; i ++)
{
fin >> x;
vis[x] = 1;
last = x;
}
p[0] = 1;
for(i = 1; i <= n; i ++)
{
if(vis[i] == 1 && i != last)
{
ct ++;
p[i] = p[i - 1] * (n - i);
}
else
if(i == last)
{
ct++;
p[i] = p[i - 1];
}
else
p[i] = p[i - 1] * (n - ct);
}
fout << p[n - 1];
return 0;
}