TLE求助
查看原帖
TLE求助
1040109
_Deer_Peach_楼主2024/4/21 19:31

Subtask1的点TLE,求调。

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,ans;
struct node{
	int id,color,number;
}a[100001];
int f(int x,int y){
	return (a[x].id+a[y].id)*(a[x].number+a[y].number);
}
bool cmp(node x,node y){
	return ((x.id%2==y.id%2) and x.color==y.color and x.id<y.id) or ((x.id%2==y.id%2) and x.color<y.color) or x.id%2<y.id%2;
}
signed main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++)cin>>a[i].number,a[i].id=i;
	for(int i=1;i<=n;i++)cin>>a[i].color;
	sort(a+1,a+1+n,cmp);
	for(int i=1;i<n;i++){
		for(int j=i+1;j<=n;j++){
			if(a[i].color!=a[j].color)break;
			if((a[i].id+a[j].id)%1==1)break;
			ans=ans+f(i,j);
			ans%=10007;
		}
	}
	cout<<ans%10007;
	return 0;
}
2024/4/21 19:31
加载中...