请求大佬求调
查看原帖
请求大佬求调
996107
dsj2012楼主2024/10/7 12:09

只有30分求大佬帮助

#include<bits/stdc++.h>
#define int long long
using namespace std;
int sum;
struct pi{
	int w,u;
}s[1500005];
bool cmp(pi x,pi y){
	if(x.u == y.u){
		return x.w < y.w;
	}
	return x.u > y.u;
}	
int ADD(int x,int y,int mod){
	return (x % mod) + (y % mod) % mod;
}
int MUL(int x,int y,int mod){
	return (x % mod) * (y % mod) % mod;
}
int check(int x,int y,int a,int b,int xx,int mod){
	int nn = MUL(MUL(MUL(MUL(MUL(x , y , mod) , y , mod) , y , mod) , y , mod) , y , mod);
	int mm = MUL(MUL(MUL(a , b , mod) , b , mod) , b , mod);
	return ADD(ADD(nn , mm , mod) , xx , mod);
}
int check2(int x,int y,int a,int b,int xx,int mod){
	int nn = MUL(MUL(MUL(MUL(MUL(x , y , mod) , y , mod) , y , mod) , y , mod) , y , mod);
	int mm = MUL(MUL(a , b , mod) , b , mod);
	return ADD(ADD(nn , mm , mod) , xx , mod);
}
signed main(){
	int a,b,c,d,e,f,g,h,n,m;
	cin >> n >> a >> b >> c >> d >> e >> f >> g >> h >> m;
	for(int i = 0 ; i < n * 3 ; i ++){
		int uu = check(e , i , f , i , g , h);	
		int vv = check2(a , i , b , i , c , d);
		s[i].u = uu;
		s[i].w = vv;
	}
	sort(s , s + n * 3 , cmp);
	for(int i = 0 ; i < n ; i ++){
		sum = ADD(sum , s[i].w , m);
	} 
	cout << sum % m;
	return 0;
}

2024/10/7 12:09
加载中...