• 1042: 小丑排序


    1042: 小丑排序

    时间限制: 1 Sec  内存限制: 128 MB
    提交: 149  解决: 121
    [提交][状态][讨论版]

    题目描述

    你在信天翁马戏团(是的,它是由一群小丑组成)从事管理工作,你刚刚写完一个程序的输出是将他们的姓名按长度为非递减的方式排列,名称列表(使每名至少只要它之前的)。然而,你的老板不喜欢这种输出方式,而是希望输出出现更对称,较短的字符串在顶部和底部,而较长的字符串在中间。他的规则是,每一对名称都是在该列表的相对的两端,并且在该组中的第一个名字总是在列表的顶部。比如在下面的第一个例子中,Bo和Pat是第一对,Jean和Kevin是第二对,等等。

    输入

    输入由1到多个字符串集合组成,最后一行为0表示输入结束,每个集合开始于一个整数n,表示该集合字符串的个数,接下来n行由n个字符串按长度非递减的方式排列,每个集合至少包含一个但不超过15个字符串,每个字符串不超过25个字符。

    输出

    对于每个集合,第一行输出"set-n", n从1开始,接下来的若干行对应输入每个集合重新排列的结果,如样例所示。

    样例输入

    7
    Bo
    Pat
    Jean
    Kevin
    Claude
    William
    Marybeth
    6
    Jim
    Ben
    Zoe
    Joey
    Frederick
    Annabelle
    5
    John
    Bill
    Fran
    Stan
    Cece
    0

    样例输出

    set-1
    Bo
    Jean
    Claude
    Marybeth
    William
    Kevin
    Pat
    set-2
    Jim
    Zoe
    Frederick
    Annabelle
    Joey
    Ben
    set-3
    John
    Fran
    Cece
    Stan
    Bill

    提示

     

    来源

    #include <iostream>
    using namespace std;
    int main(){
     int n,i,k,num=1;
     string a[100],b[100];
     while(cin>>n&&n!=0){
      k=0;
      for(i=0;i<n;i++){
      cin>>a[i];
         }
      for(i=0;i<n;i=i+2){
       if(i==n-1){
        b[k]=a[i];
       }else{
        b[k]=a[i];
        b[n-1-k]=a[i+1];
        k=k+1;
       }
      }
     cout<<"set-"<<num++<<endl;
     for(i=0;i<n;i++){
      cout<<b[i]<<endl;
     }
     }
     
     
     return 0;
    }

  • 相关阅读:
    [原]Unity3D深入浅出
    [原]Unity3D深入浅出
    [原]Unity3D深入浅出
    [原]Unity3D深入浅出
    [原]Unity3D深入浅出
    [原]Unity3D深入浅出
    [原]Unity3D深入浅出
    [原]Unity3D深入浅出
    [原]Unity3D深入浅出
    [原]Unity3D深入浅出
  • 原文地址:https://www.cnblogs.com/lchzls/p/5781742.html
Copyright © 2020-2023  润新知