求助大佬,80分调不了了
查看原帖
求助大佬,80分调不了了
542974
William_qwq楼主2021/11/13 23:31
#include<bits/stdc++.h>
using namespace std;
struct noid
{
	long long id,num;
};
vector<noid> g[5][1000010];
long long a[100010],col[100010];
const long long mod=10007;
int main()
{
    long long n,m,i,j,k;
    long long sum=0;
    cin>>n>>m;
    for(i=1;i<=n;i++)
    {
    	cin>>a[i];
	}
	for(i=1;i<=n;i++)
	{
		cin>>col[i];
	}
	for(i=1;i<=n;i++)
	{
		g[i%2][col[i]].push_back(noid{i,a[i]});
	}
	for(i=1;i<=m;i++)
	{
		for(j=0;j<g[0][i].size();j++)
		{
			for(k=j+1;k<g[0][i].size();k++)
			{
				sum+=(g[0][i][j].id+g[0][i][k].id)*(g[0][i][j].num+g[0][i][k].num);
				sum%=mod;
			}
		}
		for(j=0;j<g[1][i].size();j++)
		{
			for(k=j+1;k<g[1][i].size();k++)
			{
				sum+=(g[1][i][j].id+g[1][i][k].id)*(g[1][i][j].num+g[1][i][k].num);
				sum%=mod;
			}
		}
	}
	cout<<sum%mod;
	return 0;
}

2021/11/13 23:31
加载中...