50分求助 我实在没办法优化了
查看原帖
50分求助 我实在没办法优化了
353685
ACTREE楼主2021/10/15 18:30
#include<bits/stdc++.h>
using namespace std;
long long n,m,number[101010],color[101010],id[101010],sum,len;
inline int read() {
	int x=0,k=1;
	char c=getchar();
	while(c<'0'||c>'9') {
		if(c=='-')k=-1;
		c=getchar();
	}
	while(c>='0'&&c<='9')x=(x<<3)+(x<<1)+(c^48),c=getchar();
	return x*k;
}
int main() {
	n=read();
	m=read();
	for(int i=1; i<=n; i++) {
		number[i]=read();
	}
	
	for(int i=1; i<=n; i++) {
		color[i]=read();
	}
	for(int i=1;i<=n;i+=2){
		for(int j=i+2;j<=n;j+=2){
			if(color[i]==color[j]){
				len=(i+j)*(number[i]+number[j]);
				sum+=len%10007;
			}
		}
	}
	for(int i=2;i<=n;i+=2){
		for(int j=i+2;j<=n;j+=2){
			if(color[i]==color[j]){
				len=(i+j)*(number[i]+number[j]);
				sum+=len%10007;
			}
		}
	}
	sum%=10007;
	cout<<sum;
}	
2021/10/15 18:30
加载中...