100分但Subtask没过
查看原帖
100分但Subtask没过
1282319
Code_lover楼主2024/6/22 10:49
#include<bits/stdc++.h>
using namespace std;
const int Max_N=1e5+10;
const int Mod=1e4+7;
long long N,M,Ans;
long long Num[Max_N],Color[Max_N]; 
vector<long long>R[Max_N][2];//存储第i种颜色标号为单数或复数的编号
int main(){
	cin>>N>>M;
	for(int i=1;i<=N;i++) cin>>Num[i];
	for(int i=1;i<=N;i++){
		cin>>Color[i];
		R[Color[i]][i%2].push_back(i);
	}
	for(int i=1;i<=M;i++){
		for(int j=0;j<2;j++){
			int len=R[i][j].size();
			for(int p=0;p<len;p++){
				for(int q=p+1;q<len;q++){
					Ans=(Ans+(R[i][j][p]+R[i][j][q])*(Num[R[i][j][p]]+Num[R[i][j][q]]))%Mod;
				}
			}
		}
	}
	cout<<Ans<<endl;
	return 0;
}
2024/6/22 10:49
加载中...