Cod sursa(job #1754880)

Utilizator giotoPopescu Ioan gioto Data 8 septembrie 2016 21:41:29
Problema Sandokan Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <cstdio>
#include <algorithm>
#define MOD 2000003
using namespace std;

int n,k,a[5002];
int main()
{
    freopen("sandokan.in", "r", stdin);
    freopen("sandokan.out", "w", stdout);
    scanf("%d%d", &n, &k);
    for(int i=1;i<=n;++i)
        scanf("%d", &a[i]);
    int m=n;
    while(m>=k) m-=(k-1);
    if(m<=1) {printf("1");return 0;}
    //cel mai mare element nu poate fi eliminat
    //el mereu va fi in sirul final
    //in schimb folosindu-le de el putem elimina
    //orice numar vrem
    //deci trebuie sa calculam aranjari de
    //(n-1)luate cate (k-1)
    long long sol=1;--n;--m;
    for(int i=n-m+1;i<=n;++i)
        sol=(sol*i)%MOD;
    printf("%d", sol);
    return 0;
}