哪位大佬帮我调调,运行时直接卡了?
查看原帖
哪位大佬帮我调调,运行时直接卡了?
658786
STUDENT00楼主2022/9/1 20:41

代码很好理解(懒得用数组,字符串可以cout)

#include<bits/stdc++.h>
using namespace std;
int n;
string k="1",maxs="";
struct man{
	int a,b;
} men[1010];
bool cmp(man a,man b){
	return a.a*a.b<b.a*b.b;
}
string pro(string a,int b){
	int c[110]={0},w=a.length();
	for(int i=w-1;i>=0;i--) c[w-i-1]=(a[i]-'0')*b;
	for(int i=0;i<w;i++){
		c[i+1]+=c[i]/10;
		c[i]%=10;
	}
	while(c[w]){
		c[w+1]=c[w]/10;
		c[w]%=10;
		w++;
	}
	string cc="";
	for(int i=w-1;i>=0;i--) cc+=char(c[i]+'0');
	return cc;
}
string qr(string a,int b){
	int y=0,k=0;
	while(y<b) y=y*10+a[k++]-'0';
	string c="";
	c+=char(y/b+'0');
	y%=b;
	for(int i=k;i<a.length();i++){
		y=y*10+a[i]-'0';
		c+=char(y/b+'0');
		y%=b; 
	}
	return c;
}
string mx(string a,string b){
	if(a.length()!=b.length()){
		if(a.length()>b.length()) return a;
		else return b;
	}else{
		if(a>b) return a;
		else return b;
	}
}
int main(){
	scanf("%d",&n);
	for(int i=0;i<=n;i++){
		cin>>men[i].a>>men[i].b;
	}
	sort(men+1,men+n+1,cmp);
	for(int i=1;i<=n;i++){
		k=pro(k,men[i-1].a);
		maxs=mx(maxs,qr(k,men[i].b));
	}
	cout<<maxs;
	return 0;
}
2022/9/1 20:41
加载中...