比赛 Asm_Def战记之透明计算网络 评测结果 AWWWTTTTTT
题目名称 Asm_Def排兵布阵 最终得分 10
用户昵称 TZJerry 运行时间 6.001 s
代码语言 C++ 内存使用 1.46 MiB
提交时间 2015-11-01 11:12:00
显示代码纯文本
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<iomanip>
using namespace std;
int n;
int sum,ans;
int a[100010];
int b[100010];
int c[100010];
bool check()
{
	for(int i=1;i<n;i++)
	{
		if(c[i]>c[i+1])
		{
			return false;
		}
	}
	return true;
}
void work(int q)
{
	if(q==n)
	{
		if(check()==true) ans++;
		return;
	}
	else
	{
		for(int i=1;i<=n;i++)
		{
			if(a[i]!=0)
			{
				a[i]=a[i]-1;
				if(a[i]==0) c[i]=q+1;
				b[q+1]=i;
				work(q+1);
				a[i]++;
				b[q+1]=0;
			}
		}
	}
}
int main()
{
	freopen("asm_formation.in","r",stdin);
	freopen("asm_formation.out","w",stdout);
	cin>>n;
	for(int i=1;i<=n;i++) 
	{
		scanf("%d",&a[i]);
		sum=sum+a[i];
	}
	work(0);
	cout<<ans<<endl;
	return 0;
}