ACM 训练日志记录 · 思考 · 成长 提交 / 修改记录
王梓豪 / 题目列表训练档案
导出

P1012

来源:洛谷 ★ 1500

本题活力0.29按难度、完成结果与训练证据估算

算法如山行则将至

题目描述

给定n个正整数,将它们首尾相接排列,求能组成的最大整数。

代码

#include <iostream>
#include <vector>
#include <string>
#include <sstream>
#include <algorithm>
#include<cmath>
using namespace std;
bool cmp(string a,string b)
{
	int tempa=stoi(a);
	int tempb=stoi(b);
	return tempa/(pow(10,a.size())-1)>tempb/(pow(10,b.size())-1);
}
int main() {
	int n;
	cin>>n;
	vector<string> a(n);
	for(int i=0;i<n;i++)
	{
		cin>>a[i];
	}
	sort(a.begin(),a.end(),cmp);
	for(int i=0;i<n;i++)
	{
		cout<<a[i];
	}
}