2019-05-21 P1781

题目链接:https://www.luogu.org/problemnew/show/P1781

#include<iostream>
#include<cstring>
#include<string>
#include<vector> 
#include<cstdio>
#include<algorithm>
using namespace std;
int n;
string s;
typedef vector<int> vec;
typedef vector<vec> mat;
/*
    v1>v2 return -1;
    v1=v2 return 0;
    v1<v2 return 1
*/
int cmp(vec &v1,vec &v2){
    if(v1[0]!=v2[0]){
        if(v1[0]<v2[0]) return 1;
        else return -1;
    }
    else{
        for(int i=v1[0];i>=1;i--)
            if(v1[i]<v2[i]) return 1;
            else if(v1[i]>v2[i]) return -1;
    }
    return 0;
}
int main(void){
    scanf("%d",&n);
    mat A(n,vec(101));
    for(int i=0;i<n;i++){
        cin>>s;
        A[i][0]=s.length();
        for(int j=1;j<=A[i][0];j++)
            A[i][j]=s[A[i][0]-j]-'0';
        A[i][A[i][0]+1]=i+1;
    }
    for(int i=0;i<n;i++){
        for(int j=i+1;j<n;j++){
            if(cmp(A[i],A[j])>0) swap(A[i],A[j]);
        }
    }
    /*
    for(int i=0;i<n;i++){
        for(int j=A[i][0];j>=1;j--) cout<<A[i][j];
        cout<<" "<<A[i][A[i][0]+1];
        cout<<endl;
    }
    */
    
    cout<<A[0][A[0][0]+1]<<endl;
    for(int i=A[0][0];i>=1;i--) cout<<A[0][i];
    return 0;
} 
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    小迈克阅读 8,133评论 1 3
  • 今天产业上下游产业链的朋友齐聚农爸爸,大家感受到浓浓的情谊。 农爸爸也尽情的体现为我所用的思维,将业务系统和供应商...
    农爸爸阅读 773评论 0 0
  • 口红 文/李秀伟 工程队一进村子,雨荷的食杂店就红火起来。 工程队一行二十多人,住...
    李秀伟阅读 1,612评论 2 3
  • 太阳宝宝好可怜, 没人和他交朋友, 可他没有放弃, 还在找朋友。 如果和河交朋友, 河水一定不同意, 因为他太热了...
    麦田辰阅读 819评论 0 0
  • 昨日,故人相遇。今日,新人报道。 只是短短几月不见,故人已不是故人,很惊叹她的进步与变化,大方、简洁、清新如她的文...
    瓦蓝柏杨阅读 2,910评论 0 1