zp1202_b.cpp

来自「浙江大学acm在线判题器代码集。 本人在浙大acm判题器上的所有代码(心血) 」· C++ 代码 · 共 50 行

CPP
50
字号
//program p1202;

#include<fstream>
using namespace std;
int func(int m,int n)
{
	int sum=1,i;
	for (i=n+1;i<=m;i++)
		sum*=i;
	for (i=2;i<=m-n;i++)
		sum/=i;
	return sum;
}
int main()
{
  ifstream fin("d:\input2.txt");
  ofstream fout("d:\output2.txt");
	int w,s,j,i,n;
	int a[15],g[15];
	while (fin>>n)
	{
		w=1;
		for (i=1;i<=n;i++)
			fin>>a[i];
		for (i=1;i<n;i++)
			for (j=i+1;j<=n;j++)
				if (a[i]<a[j])
				{
					s=a[i];a[i]=a[j];a[j]=s;
				}
		s=0;
		for (i=1;i<=n;i++)
			s+=a[i];
		for (i=1;i<=n;i++)
		{
			w*=func(s,a[i]);
			s-=a[i];
		}
		for (i=1;i<=a[1];i++)
			g[i]=0;
		for (i=1;i<=n;i++)
			g[a[i]]+=1;
		for (i=1;i<=a[1];i++)
			if (g[i]>1)
				for (j=2;j<=g[i];j++)
					w/=j;
		fout<<w<<endl;
	}
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?