记录编号 203890 评测结果 AAAAAAAAAA
题目名称 [ZLXOI 2015]沼跃鱼数列变换 最终得分 100
用户昵称 Gravatarwmez 是否通过 通过
代码语言 C++ 运行时间 0.044 s
提交时间 2015-11-03 19:32:41 内存使用 1.82 MiB
显示代码纯文本
#include<cstdio>
#include<cstdlib>
using namespace std;
#define ll long long
ll n,m;
ll a[100005],b[100005];
int main()
{
	freopen("Marshtomp.in","r",stdin);
	freopen("Marshtomp.out","w",stdout);
	scanf("%lld",&n);
	for(int i=1;i<=n;i++)
	{
		scanf("%lld",&a[i]);
	}
	scanf("%lld",&m);
	ll ed=0;
	if(!m)
	{
		for(int i=1;i<=n;i++)
		{
			ed+=ed*a[i]%9999997+a[i];
			ed%=9999997;
		}
		printf("%lld\n",ed);
		return 0;
	}
	int kk;
	for(int i=0;i<m;i++)
	{
		scanf("%lld",&kk);
		b[i]=a[kk];
		a[kk]=0;
	}
	ll uu=0;
	for(int i=1;i<=n;i++)
	{
		uu+=uu*a[i]%9999997+a[i];
		uu%=9999997;
	}
	ed=uu;
	for(int i=0;i<m;i++)
	{
		ed+=uu*b[i]%9999997+b[i];
		ed%=9999997;
	}
	printf("%lld\n",ed);
}