求大佬看看
查看原帖
求大佬看看
1123721
lishunjie楼主2024/4/10 20:12
#include<bits/stdc++.h>
using namespace std;
struct dacheng{
	int z;
	int y;
}a[10005];
int gw1,gw2; 
int cj[40010],jb[40010],ans[40010];
bool cmp(dacheng x,dacheng q){
	if(x.z*x.y<q.z*q.y) return true;
	else return false;
}
void ss(int n){
	if(n==1) cj[1]*=gw1;
	else 
	    for(int i=1;i<=cj[0];i++)
	        cj[i]*=a[n-1].z;
	
	for(int i=1;i<=cj[0];i++){
		if(cj[i]>=10&&i>=cj[0]) cj[0]++;
			cj[i+1]+=cj[i]/10;
			cj[i]%=10;
	}
	
	memset(jb,0,sizeof(jb));
	for(int i=0;i<=cj[0];i++){
		jb[i]=cj[i];
	}
	
	int r=0;
	for(int i=jb[0];i>=1;i--){
		if(jb[i]==a[n].y){jb[i]/=a[n].y;break;}
		
		if(jb[i]<a[n].y) {
		if(i!=1) {jb[i-1]+=10*jb[i];jb[i]=0;if(r==0) jb[0]--;continue;}
		else jb[i]/=a[n].y;
		}
		if(jb[i]>a[n].y) {
			r=1;
			if(i!=1) {
				jb[i-1]+=10*(jb[i]%a[n].y);
				jb[i]/=a[n].y;
			}
			else {
				jb[i]/=a[n].y;
			}
		}
	}
}
bool bj(){
	int mrg=max(ans[0],jb[0]);
		for(int i=mrg;i>=1;i--){
			if(jb[i]>ans[i]) return true;
			if(jb[i]<ans[i]) return false;
		}
	return false;
}
int main(){
    int n;cin>>n;
    cin>>gw1>>gw2;
	for(int i=1;i<=n;i++)
		cin>>a[i].z>>a[i].y;
	sort(a+1,a+1+n,cmp);
	/*for(int i=1;i<=n;i++){
		cout<<a[i].z<<" "<<a[i].y<<endl; 
	}*/
	cj[1]=1;
	cj[0]=1;
	for(int i=1;i<=n;i++){
		ss(i);
		if(bj()) 
		for(int j=jb[0];j>=0;j--)
			ans[j]=jb[j];
	}
	for(int i=ans[0];i>=1;i--){
		cout<<ans[i];
	}
	return 0;
}

求大佬看下 5和7过不了

2024/4/10 20:12
加载中...