Pagini recente » Cod sursa (job #1520294) | Cod sursa (job #769086) | Cod sursa (job #1036048) | Cod sursa (job #1736849) | Cod sursa (job #786048)
Cod sursa(job #786048)
#include<fstream>
#include<algorithm>
using namespace std;
int N,M,poz[100001],i,j;
long long r=1;
int factorial(int a)
{
int i,ret=1;
for(i=2;i<=a;i++)
ret*=i;
return ret;
}
int main()
{
///////////////////// citire
ifstream f("grigo.in");
f>>N>>M;
for(i=1;i<=M;i++)
f>>poz[i];
f.close();
///////////////// ordonare
sort(poz+1,poz+M+1);
//////////////////////// factoriala intre pozitii
for(i=1;i<=M;i++)
r*=factorial(poz[i]-poz[i-1]-1);
r*=factorial(N-poz[M]);
///////////////////////
for(i=1;i<M;i++)
r*=poz[i+1]-poz[i];
r*=N-poz[M]+1;
////////////////////////
ofstream g("grigo.out");
g<<r;
g.close();
return 0;
}