比赛 “Asm.Def战记之夏威夷”杯 评测结果 AAAAAAATTT
题目名称 Asm.Def的验证码 最终得分 70
用户昵称 Tychus 运行时间 3.039 s
代码语言 C++ 内存使用 1.84 MiB
提交时间 2015-11-06 11:40:47
显示代码纯文本
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cmath>
#include <iomanip>
#include <cstring>
#include <string>
#define MOD 1000000007
using namespace std;
int n,f[100010],a[100010],sum1[100010],sum2[100010],t=0;
long long ans=0;
int main()
{
	freopen("asm_code.in","r",stdin);
	freopen("asm_code.out","w",stdout);
	ios::sync_with_stdio(false);
	cin>>n;
	for (int i=1;i<=n;i++)
	{
		cin>>a[i];
		if (a[i]!=a[i-1]) t=i-1;
		sum1[i]=sum1[i-1];
		sum2[i]=sum2[i-1];
		if (a[i]==1) sum1[i]++;
		if (a[i]==2) sum2[i]++;
		for (int j=t;j>=1;j--)
		{
			if (a[i]==1&&a[j]==1) ans=(ans+(sum2[i]-sum2[j])*sum2[j]%MOD)%MOD;
			if (a[i]==2&&a[j]==2) ans=(ans+(sum1[i]-sum1[j])*sum1[j]%MOD)%MOD;
		}
	}
	cout<<ans<<endl;
}