Cod sursa(job #174756)

Utilizator M@2Te4iMatei Misarca M@2Te4i Data 9 aprilie 2008 11:11:18
Problema Sandokan Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <cstdio>
#include <vector>
#define mod 2000003

using namespace std;

vector <int> v;
int n,k,p;

void citire()
{
    freopen("sandokan.in","r",stdin);
    scanf("%d%d", &n, &k);
    int w;
    for (int i=0; i<n; i++)
    {
        scanf("%d", &w);
        v.push_back(w);
    }
}

long long cmmdc(long long a, long long b)
{
	long long w=a;
	long long q=b;
	long long r;
	while (q>0)
	{
		r=w%q;
		w=q;
		q=r;
	}
	return w;
}

void sandokan()
{
    //sort(q.begin(),q.end());
    p=n%(k-1);
    long long w=1;
    for (int i=2; i<p; i++)
        w*=i;
    long long rez=1;
    long long c,q;
    for (long long i=n-p+1; i<n; i++)
    {
        q=i;
        c=cmmdc(i,w);
        q/=c;
        w/=c;
        rez*=q;
//        rez%=mod;
    }
//    rez%=mod;
    freopen("sandokan.out","w",stdout);
    printf("%lld",rez);
}

int main()
{
    citire();
    sandokan();
    return 0;
}