比赛 20110724 评测结果 TTTTTTTTTT
题目名称 并行 最终得分 0
用户昵称 kaaala 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2011-07-24 10:02:08
显示代码纯文本
#include<iostream>
#include<fstream>
#include<cstdlib>
#include<cmath>
#include<cstring>
#include<string>
#include<algorithm>

using namespace std;

long long ans;
int n,k,a[101];

template<class type> 
void permutation(type *R,int K,int N)
{
	int i,j;
	if (K==N)
	{
		j=0;
		for(i=1;i<N;++i)
		{
			if(R[i]<R[i+1])
				j++;
			if(j>k)
				break;
		}
		if(j==k)
			ans++;
	}
	else 
		for(i=K;i<=N;++i)
		{
			swap(R[K],R[i]);
			permutation(R,K+1,N);
			swap(R[K],R[i]);
		}
}

int main()
{
	int i;
	ifstream fin("permutation.in");
	ofstream fout("permutation.out");
	while(!fin.eof())
	{
		fin>>n>>k;
		for(i=1;i<=n;i++)
			a[i]=i;
		permutation(a,1,n);
		fout<<ans%2007<<endl;
	}
	fin.close();
	fout.close();
	return 0;
}