27求助(最后几个MLE)
查看原帖
27求助(最后几个MLE)
1272259
cgxd楼主2024/5/31 17:15
#include<bits/stdc++.h>
#define int long
using namespace std;
int gcd(int a, int b){
	do{
		if(a < b)
			swap(a, b);
	}while(a %= b);
	return b;
}bool cmp(pair<int, int> p1, pair<int, int> p2){
	int num1 = p1.first * p2.second;
	int num2 = p2.first * p1.second;
	return num1 < num2;
}pair<int, int> change(pair<int, int> p){
	int k = gcd(p.first, p.second);
	int x = p.first / k;
	int y = p.second / k;
	return pair<int, int>(x, y);
}deque<pair<int, int>> dq;
int n, q;
vector<int> v;
signed main(){
	cin >> n >> q;
	for(int i = 0; i < n; ++i){
		int k;
		cin >> k;
		v.push_back(k);
	}for(int i = 0; i < n; ++i){
		int k;
		cin >> k;
		for(int j: v){
			dq.push_back(pair<int, int>(j, k));
		}
	}sort(dq.begin(), dq.end(), cmp);
	dq.push_front(pair<int, int>());
	while(q--){
		int k;
		cin >> k;
		pair<int, int> p = change(dq[k]);
		cout << p.first << ' ' << p.second << '\n';
	}return 0;
}
2024/5/31 17:15
加载中...