Cod sursa(job #706161)
Utilizator | Data | 5 martie 2012 18:11:29 | |
---|---|---|---|
Problema | Grigo | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.65 kb |
#include <fstream>
#define MAX 100050
using namespace std;
int dp[MAX], n, m;
bool important[MAX];
void citire()
{
ifstream in("grigo.in");
int a;
in>>n>>m;
while(m--)
{
in>>a;
important[a] = true;
}
in.close();
}
void solve()
{
int i;
dp[0] = 1;
for(i = 1; i <= n; i++)
{
if(important[i])
dp[i] = dp[i - 1];
else
dp[i] = dp[i - 1] * (i - 1);
}
}
void afisare()
{
ofstream out("grigo.out");
out<<dp[n];
out.close();
}
int main()
{
citire();
solve();
afisare();
return 0;
}