Cod sursa(job #215920)

Utilizator savimSerban Andrei Stan savim Data 21 octombrie 2008 19:17:06
Problema Grigo Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <stdio.h>
#include <algorithm>

using namespace std;

#define MAX_N 100010

int n,m,k;
int poz[MAX_N],sol[MAX_N];

int main() {
    freopen("grigo.in","r",stdin);
    freopen("grigo.out","w",stdout);
    
    scanf("%d %d",&n,&m);
    for (int i = 0; i < m; i++) scanf("%d ",&poz[i]);
    sort(poz, poz + m);

    k = 0; sol[poz[0]] = 1;
    for (int i = 1; i <= n; i++)
        if (i == poz[k]) { 
           sol[i] += sol[i-1];
           k++;
        }
        else sol[i] += (i - 1) * sol[i - 1];
        
    printf("%d\n",sol[n]);    

    return 0;
}