100分求助,TLE on Subtask#1
查看原帖
100分求助,TLE on Subtask#1
820387
haoguorui_python楼主2024/10/2 17:22

代码如下:

#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll n,m,sum=0;

struct node{
	ll number,color,place;
}a[100010];
bool cmp(node a,node b){
	if (a.place%2==b.place%2){
		if (a.color==b.color) return a.place<b.place;
		return a.color<b.color;	
	}
	return a.place%2<b.place%2;
}
int main(){
	scanf("%lld %lld",&n,&m);
	for (ll i=1;i<=n;i++){
		scanf("%lld",&a[i].number);
	}
	for (ll i=1;i<=n;i++){
		scanf("%lld",&a[i].color);
	}
	for (ll i=1;i<=n;i++){
		a[i].place=i;
	}
	sort(a+1,a+1+n,cmp);
	for (ll i=1;i<=n;i++){
		for (ll k=i+1;k<=n;k++){
			if ((a[i].place+a[k].place)%2==1) break;
			if (a[i].color!=a[k].color) break;
			sum=(sum+(a[i].place+a[k].place)*(a[i].number+a[k].number))%10007;
		}
	}
	printf("%lld",sum);
	return 0;
} 

求解答!

2024/10/2 17:22
加载中...