求助,30pts,test4~10MLE
查看原帖
求助,30pts,test4~10MLE
423520
wizard(偷开O2楼主2023/7/23 01:36

我判断字典序大小时没有考虑会出现相同的数,之后会继续修改,但是为啥会MLE,求解。

#include <bits/stdc++.h>
using namespace std;
#define ll long long
const ll maxn=1e5+10;
bool cmpfu(ll x,ll y){
	return x>y;
}
struct dic{
	ll num;
	ll id;
}xxx[maxn];
bool cmp(dic a,dic b){
	return a.num<b.num;
}
int main(){
	ll n,m;
	cin >> n >>m;
	for(ll i=1;i<=n;i++){
		xxx[i].id=i;
		ll x;
		cin >> x;
		vector<int> vec;
		vec.push_back(x);
		if(x>0){
			for(ll j=1;j<=m;j++){
				vec.push_back(vec[j-1]*i);
			}
			sort(vec.begin(),vec.end());
		}else if(x<0){
			for(ll j=1;j<=m;j++){
				vec.push_back(vec[j-1]*i);
			}
			sort(vec.begin(),vec.end(),cmpfu);
		}
		xxx[i].num=vec[0];
	}
	sort(xxx+1,xxx+n+1,cmp);
	for(ll i=1;i<=n;i++){
		cout << xxx[i].id << " ";
	}
	return 0;
} 
2023/7/23 01:36
加载中...