比赛 |
“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;
}