`
linxiaoty
  • 浏览: 12746 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

sicily1007. To and Fro

阅读更多

1007. To and Fro

Constraints

Time Limit: 1 secs, Memory Limit: 32 MB

Description

Mo and Larry have devised a way of encrypting messages. They first decide secretly on the number of columns and write the message (letters only) down the columns, padding with extra random letters so as to make a rectangular array of letters. For example, if the message is "There's no place like home on a snowy night" and there are five columns, Mo would write down t o i o y h p k n n e l e a i r a h s g e c o n h s e m o t n l e w x Note that Mo includes only letters and writes them all in lower case. In this example, Mo used the character `x' to pad the message out to make a rectangle, although he could have used any letter. Mo then sends the message to Larry by writing the letters in each row, alternating left-to-right and right-to-left. So, the above would be encrypted as toioynnkpheleaigshareconhtomesnlewx Your job is to recover for Larry the original message (along with any extra padding letters) from the encrypted one.

Input

There will be multiple input sets. Input for each set will consist of two lines. The first line will contain an integer in the range 2 . ..20 indicating the number of columns used. The next line is a string of up to 200 lower case letters. The last input set is followed by a line containing a single 0, indicating end of input.

Output

Each input set should generate one line of output, giving the original plaintext message, with no spaces.

Sample Input

5
toioynnkpheleaigshareconhtomesnlewx
3
ttyohhieneesiaabss
0

Sample Output

theresnoplacelikehomeonasnowynightx
thisistheeasyoneab

 

题目分析:字符串处理 不解释

 

参考代码:

#include<iostream>
#include<string>
using namespace std;

int main()
{
    int t;
    int num;
    string s;
    string str[1000];
    string a;
    while (true)
    {
        cin  >> num;
        if (num != 0)
        {
            
            cin >> s;
            a.clear();
            int length = s.size();
            int temp = length / num;
            if (temp % 2 == 0)
            {
                int sum = length / (2 * num);
                for (int i = 0; i < sum; ++ i)
                {
                    str[i].assign(s, 2 * num * (i), 2 * num);
                }
                for (int k = 0, j = 2 * num - 1; k < j; ++ k, -- j)
                {
                    for (int i = 0; i < sum; ++ i)
                    {
                        a.append(1, str[i][k]);
                        a.append(1, str[i][j]);
                    }
                }
            }
            else
            {
                int sum = length / (2 * num);
                for (int i = 0; i < sum; ++ i)
                {
                    str[i].assign(s, 2 * num * (i), 2 * num);
                }
                for (int k = 0, j = 2 * num - 1; k < j; ++ k, -- j)
                {
                    for (int i = 0; i < sum; ++ i)
                    {
                        a.append(1, str[i][k]);
                        a.append(1, str[i][j]);
                    }
                    a.append(1,s[length - num + k]);
                }
            }
            cout << a << endl;
        }
        else
        {
            break;
        }
    }
}                                 

 

0
0
分享到:
评论

相关推荐

    sicily 1562.LVM

    sicily 1562_LVM.cpp参考代码

    sicily1294.rar_1294_sicily

    【标题】"sicily1294.rar_1294_sicily" 提供的信息表明,这可能是一个与中山大学ACM竞赛相关的代码压缩包,其中包含了对问题1294 "Sicily"的解决方案。在ACM(国际大学生程序设计竞赛,International Collegiate ...

    CPP-for-sicily.zip_sicily

    "CPP-for-sicily.zip_sicily"这个压缩包,显然是为了解决与"Sicily"相关的编程问题而准备的资源,它包含了一份名为"C++ for sicily.doc"的文档,这很可能是针对Sicily地区或某个特定的Sicily项目的一份C++解题模板...

    sicily1007题

    sicily1007题答案,附代码解释,可以在平台上通过

    Sicily_Queue.rar_sicily

    "Sicily_Queue.rar_sicily"这个压缩包文件显然包含了与在Sicily平台上实现高效队列操作相关的代码或文档。 首先,我们需要理解队列的基本概念。队列就像一个等待服务的队伍,新进来的元素(入队)会排在队伍的末尾...

    sicily-1274.rar_sicily

    【标题】"sicily-1274.rar_sicily" 指向的是一个名为 "sicily-1274" 的RAR压缩文件,它包含的可能是一个关于 "sicily" 项目的源代码。RAR是一种流行的压缩格式,用于打包多个文件或文件夹到一个单一的、易于管理的...

    sicily_source.zip_sicily

    在“sicily_source.zip_sicily”这个压缩包文件中,我们主要关注的是与西西里相关的编程练习,这些练习涵盖了输入输出操作和标准程序设计,同时也涉及到超高精度浮点数的输出问题以及关联数组这一数据结构。...

    sicily-code.rar_1137_sicily

    sicily-code.rar_1137_sicily 是一个压缩包文件,包含了中山大学某个项目或课程相关的代码。从描述中我们可以推断,这个项目或课程可能与 sicily 相关,而数字序列1137可能是课程编号、版本号或者是项目的特定标识。...

    sicily-code--2.rar_sicily

    【 sicily-code--2.rar_sicily 知识点详解】 这个压缩包“sicily-code--2.rar_sicily”包含的是中山大学 sicily 项目的一系列参考代码,旨在帮助学习者理解和掌握 sicily 项目的具体实现。在这个压缩包中,我们可以...

    sicily-code--3.rar_sicily

    【标题】"sicily-code--3.rar_sicily" 提供的是中山大学sicily课程相关的编程参考资料,这可能是一门涵盖计算机科学与信息技术的课程,其中涉及到的代码可能是用于教学或者项目实践。从描述来看,这个压缩包包含了...

    sicily-online-judge.zip_sicily

    sicily-online-judge.zip_sicily 是一个与 Sicily 在线评判系统相关的压缩包,包含了一些编程题目和相应的解决方案。这些题目涵盖了不同的算法和数据结构主题,如线性表、最小生成树以及中缀转后缀表达式计算。以下...

    sicily-code--5.rar_sicily

    【标题】"sicily-code--5.rar_sicily" 暗示了这是一个与 sicily 相关的代码项目,可能包含的是一个软件或游戏的源代码,版本号可能是5。"rar" 是一种常见的文件压缩格式,意味着这些代码被打包在RAR文件里。 【描述...

    sicily部分题目源代码

    "Sicily"可能是这些题目所属的一个特定比赛或者系列。从描述中我们可以得知,这些源代码都已经通过了官方的评测系统,状态为"accepted",意味着它们实现了正确并有效率的算法,具有较高的质量。 1. **1150.cpp**:...

    soj.rar_1876_sicily 1022_sicily 1934_sicily soj IP

    标题中的"soj.rar_1876_sicily 1022_sicily 1934_sicily soj IP" 提到了几个关键元素,这些元素指向了一个编程竞赛或者作业集中的多个问题。"soj"通常代表"Software Judge",这是一个用于在线编程竞赛或教育平台的...

    sicily AC代码

    6. **MJ, Nowhere to Hide**:可能是一个搜索或图遍历问题,比如深度优先搜索(DFS)或广度优先搜索(BFS)。 7. **Hanoi Tower Sequence**:经典的汉诺塔问题,需要理解递归算法。 8. **Rabbit**:题目可能与生物...

    sicily上部分题目代码

    通过对 sicily.doc 文件的深入研究,我们可以学习到实际编程中如何将理论知识应用于解决实际问题,同时也能提高我们的编程技巧和问题解决能力。无论是对初学者还是经验丰富的开发者,这样的资源都是宝贵的学习材料。

    sicily刷题指南

    中大sicily online judge的刷题指南,里面介绍得很详细,不过,最近sicily好像不能外网访问了。

    sicily1006代码

    本cpp是sicily的1006的解题代码 这份代码以最简单的方式实现了它的功能要求 值得学习一番

    中大sicily编程平台上机考试资料整理

    文件中还提到了“sicily1211.商人的宣传”,这可能是指与图论相关的一个编程题目,需要利用矩阵的幂运算来解决问题。这部分内容在文件中没有详细展开,但基于标题,我们可以知道这是一个关于编程平台上机考试的资料...

Global site tag (gtag.js) - Google Analytics