比赛 “Asm.Def战记之夏威夷”杯 评测结果 AWWWWWWTTT
题目名称 Asm.Def的验证码 最终得分 10
用户昵称 TZJerry 运行时间 3.014 s
代码语言 C++ 内存使用 1.46 MiB
提交时间 2015-11-06 09:52:04
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<iomanip>
using namespace std;
long long mod=1LL*1000000007;
int n;
long long ans;
int ansnum[100010];
int sum2[100010],num2=1,num1;
int a[100010];
inline int read()
{
	int f=1;
	int q=0;
	char a=getchar();
	while(a<'0' || a>'9') {if(a=='-1') f=-1; a=getchar();}
	while(a>='0' && a<='9') {q=f*(q*10+a-'0'); a=getchar();}
	return q;
}
int main()
{
	freopen("asm_code.in","r",stdin);
	freopen("asm_code.out","w",stdout);
	n=read();
	for(int i=1;i<=n;i++) 
	{
		a[i]=read();
		if(a[i]==1) {num2++; num1++;}
		if(a[i]==2) sum2[num2]++;
	}
	for(int i=1;i<=num2-1;i++)
	{
		for(int j=i+1;j<=num2;j++)
		{
			if((i==1)&&(j==num2)) continue;
			if(j==i+2) ans=(ans+1LL*(num1)*sum2[i]*sum2[j])%mod;
			else ans=(ans+1LL*(num1-1)*sum2[i]*sum2[j])%mod;
		}
	}
	cout<<ans<<endl;
	return 0;
}