EOJ3530. 和你在一起

 单点时限: 1.0 sec

内存限制: 256 MB

我想和你在一起
直到我不爱你
宝贝 人和人 一场游戏
我愿意为你死去
如果我还爱你
宝贝 反正活着 也没意义
宝贝 我也只能 这样为你
——李志《和你在一起》

现场4分10秒,小哥跟着逼哥嘶吼,泪流满面。我要和你在一起,直到我不爱你。有这么 n 个数字,联成一排拼到一起便是我爱你的时间,那么我们会在一起多久呢

例如: n=3 时,3 个整数 13,312,343 联接成的最长时间为: 34331213。
又如: n=4 时,4 个整数 7,13,4,246 联接成的最长时间为: 7424613。

输入格式

n (1≤n≤20),表示 n 个数。

接下来一行 n 个正整数,大小不超过 104。

输出格式

拼成的最长时间。

样例

input

        3
        623 583 413

output

        623583413

关于笔者想不到好方法对比字节序,就试图【往短的数后面添0】这件事....

可以说菜的真实了=.=

不过这个思路倒是很好想啊,虽然看着代码量多,出奇的几分钟就AC了~

#include <iostream>
#include <bits/stdc++.h>
#include <math.h>
using namespace std;

// 字典序排序
bool cmp(int a, int b) {
	int A=a, B=b;
	int Acnt, Bcnt = 0;
	while(a>=10){
		a/=10;Acnt++;
	}
	while(b>=10){
		b/=10;Bcnt++;
	}
	
	int abscnt = abs(Acnt-Bcnt);
	if(Acnt > Bcnt){
		while(abscnt--){
			B=B*10;
		}
	}
	if(Acnt < Bcnt){
		while(abscnt--){
			A=A*10;
		}	
	}
	return A>B ;
}

int main() {
	vector<int> iarray;
	int nums, temp;
	cin >> nums;
	for (int i = 0; i < nums; i++) {
		cin >> temp;
		iarray.insert(iarray.end(), temp);
	}
	sort(iarray.begin(), iarray.end(), cmp);
	for (int i = 0; i < nums; i++) {
		cout << iarray[i];
	}
}

我觉得这也是一种自信~!

猜你喜欢

转载自blog.csdn.net/qingxiu3733/article/details/131754655
今日推荐