27pts求调 玄关
查看原帖
27pts求调 玄关
575138
xiongty2024楼主2024/10/1 20:42

rt

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=9999999,Q=9999999;//暂且先写27pts数据 
struct node{
	int fm,fz;//分母 分子 
	double fsz;//存分数值,方便比较大小 
}s[N];
int n,q,cnt,a[N],b[N],c[Q];
bool cmp(node x,node y){
	return x.fsz<y.fsz;
}//比较分数值的大小 
void init(){//准备工作 
	cin>>n>>q;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	for(int i=1;i<=n;i++){
		cin>>b[i];
	}
	for(int i=1;i<=q;i++){
		cin>>c[i];
	}
}
void wrt(){//收取分数 
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cnt++;//多一个数,记一次
			s[cnt].fz=a[i];
			s[cnt].fm=b[j];//录入 
			
			int gcdd=__gcd(a[i],b[j]);
			s[cnt].fm/=gcdd;
			s[cnt].fz/=gcdd;//化简 
			
			s[cnt].fsz=s[cnt].fz*1.0/s[cnt].fm;
			//收取具体值 
		}
	}
	//收取(收录)数据完成 
}
void prt(){
	for(int i=1;i<=q;i++){
		cout<<s[c[i]].fz<<" "<<s[c[i]].fm<<"\n";
	} 
}
signed main(){
	init();
	wrt();
	sort(s+1,s+1+cnt,cmp);
	prt();
	return 0;
}

Sub 1 2 全A,其他全MLE。

玄关。

2024/10/1 20:42
加载中...