洛谷 1012 拼数(NOIp1998提高组)
2024-08-30 23:34:28
【题解】
我们要做的就是把这些数排序。排序的时候判断两个数是否交换的方法,就是把这两个数相接形成两个长度相同的数字,比较这两个数字的大小。
#include<cstdio>
#include<algorithm>
#include<cstring>
#define N 200010
#define rg register
#define LL long long
using namespace std;
int n,m;
char s[N][];
inline int read(){
int k=,f=; char c=getchar();
while(c<''||c>'')c=='-'&&(f=-),c=getchar();
while(''<=c&&c<='')k=k*+c-'',c=getchar();
return k*f;
}
inline bool check(int x,int y){
char a[],b[];
int l1=strlen(s[x]+),l2=strlen(s[y]+),l=l1+l2;
for(rg int i=;i<=l1;i++) a[i]=s[x][i],b[i+l2]=s[x][i];
for(rg int i=;i<=l2;i++) b[i]=s[y][i],a[i+l1]=s[y][i];
for(rg int i=;i<=l;i++){
if(a[i]>b[i]) return ;
else if(a[i]<b[i]) return ;
}
return ;
}
int main(){
n=read();
for(rg int i=;i<=n;i++) scanf("%s",s[i]+);
for(rg int i=;i<n;i++)
for(rg int j=i+;j<=n;j++) if(!check(i,j)) swap(s[i],s[j]);
for(rg int i=;i<=n;i++) printf("%s",s[i]+);
puts("");
return ;
}
最新文章
- 构建自己的PHP框架--实现Model类(3)
- 导入excle数据将excle数据插入到数据库
- LeetCode ";Longest Substring with At Most K Distinct Characters";
- c#装B指南
- CSDN&mdash;&mdash;【低调的草原狼】&mdash;&mdash;Ext4.2学习目录整理
- 第八篇、微信小程序-progress组件
- MyBatis动态SQL语法
- Bzoj 2834: 回家的路 dijkstra,堆优化,分层图,最短路
- SQLServer 取小时
- 设置JQuery的Ajax方法同步
- rxJava rxandroid 学习
- C语言中变量的作用域和生命周期
- nginx系列 2 概述
- Spring的AOP基于AspectJ的注解方式开发2
- 2.04-proxy-handler
- Spring实现Ioc的多种方式--控制反转、依赖注入、xml配置的方式实现IoC、对象作用域
- 页面出现Incorrect string以及数据库内容乱码
- VBA 一个很神奇的东西
- EXTJS 4:在renderer中如何控制一个CheckColumn的行为,如显示,只读等属性
- sublime text3在交互时解决input()函数无法使用的问题