40分求助!!!
查看原帖
40分求助!!!
475143
gaojian2007楼主2022/2/25 11:34
#include<iostream>
using namespace std;
int n,m,a[100005],color[100005],b[100005][22][2],sum[100005][2],len[100005][2];
int s;
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	for(int i=1;i<=n;i++)
	{
		cin>>color[i];
		sum[color[i]][i&1]+=a[i];
		sum[color[i]][i&1]%=10007;
		b[color[i]][++len[color[i]][i&1]][i&1]=i;
	}
	for(int i=1;i<=m;i++)
	{ 
		if(len[i][0]>1)
		for(int j=1;j<=len[i][0];j++)
		{
			s+=b[i][j][0]%10007*((a[b[i][j][0]]%10007*(len[i][0]-2)%10007+sum[i][0])%10007);
			s%=10007;
		}
		if(len[i][1]>1)
		for(int j=1;j<=len[i][1];j++)
		{
			s+=b[i][j][1]%10007*((a[b[i][j][1]]%10007*(len[i][1]-2)%10007+sum[i][1])%10007);
			s%=10007;
		}
	}
	cout<<s;
	return 0;
} 
2022/2/25 11:34
加载中...