zoukankan      html  css  js  c++  java
  • Codeforces Round #386 (Div. 2) B. Decoding

    B. Decoding
    time limit per test1 second
    memory limit per test256 megabytes
    inputstandard input
    outputstandard output
    Polycarp is mad about coding, that is why he writes Sveta encoded messages. He calls the median letter in a word the letter which is in the middle of the word. If the word’s length is even, the median letter is the left of the two middle letters. In the following examples, the median letter is highlighted: contest, info. If the word consists of single letter, then according to above definition this letter is the median letter.

    Polycarp encodes each word in the following way: he writes down the median letter of the word, then deletes it and repeats the process until there are no letters left. For example, he encodes the word volga as logva.

    You are given an encoding s of some word, your task is to decode it.

    Input
    The first line contains a positive integer n (1 ≤ n ≤ 2000) — the length of the encoded word.

    The second line contains the string s of length n consisting of lowercase English letters — the encoding.

    Output
    Print the word that Polycarp encoded.

    Examples
    input
    5
    logva
    output
    volga
    input
    2
    no
    output
    no
    input
    4
    abba
    output
    baba
    Note
    In the first example Polycarp encoded the word volga. At first, he wrote down the letter l from the position 3, after that his word looked like voga. After that Polycarp wrote down the letter o from the position 2, his word became vga. Then Polycarp wrote down the letter g which was at the second position, the word became va. Then he wrote down the letter v, then the letter a. Thus, the encoding looked like logva.

    In the second example Polycarp encoded the word no. He wrote down the letter n, the word became o, and he wrote down the letter o. Thus, in this example, the word and its encoding are the same.

    In the third example Polycarp encoded the word baba. At first, he wrote down the letter a, which was at the position 2, after that the word looked like bba. Then he wrote down the letter b, which was at the position 2, his word looked like ba. After that he wrote down the letter b, which was at the position 1, the word looked like a, and he wrote down that letter a. Thus, the encoding is abba.

    题意:一个人将原本正常顺序的单词拆分后重新排列。拆分规则是,每次拿出单词中间的字母,如果单词长度是偶数,取中间两个中左边的字母,直到取完单词中所有字母,按取出的顺序重新排列字母,得到一个新的单词,如volga,依次取出l,o,g,v,a后得到新单词logva,你的任务是,输入改变后的的单词,输出改变前的单词。
    题解:逆向模拟一遍即可。每次取出的第一个字母便是原来单词中最中间的左边字母。

    #include<stdio.h>
    int main()
    {
        char a[2008],b[2008];
        int i,j,n;
        while(scanf("%d",&n)!=EOF)
        {
            scanf("%s",a);
            if(n%2!=0)
            {
                b[n/2]=a[0];
                for(i=1,j=1; i<n; i++,j++)
                {
                    b[n/2-j]=a[i++];
                    b[n/2+j]=a[i];
                }
                b[n]='';
                printf("%s
    ",b);
            }
            else
            {
                n--;
                b[n/2]=a[0];
                for(i=1,j=1; i<=n-1; i++,j++)
                {
                    b[n/2+j]=a[i++];
                    b[n/2-j]=a[i];
                }
                b[n/2+j]=a[i];
                b[n+1]='';
                printf("%s
    ",b);
            }
        }
    }
    
  • 相关阅读:
    SpringBoot:第五篇 CommandLineRunner
    多列单个索引和联合索引的区别
    数据库从0到0.1 (一): LSM-Tree VS B-Tree
    SpringBoot:第四篇 集成Guava(本地缓存+分布式缓存)
    SpringBoot:第三篇 配置修改
    TSINGSEE青犀视频编译WebRTC Android版报错The only supported distros are xxxxxxx处理方式
    TSINGSEE青犀视频开发WebRTC视频推流播放平台前端获取视频流列表错误是什么原因?
    如何修改TSINGSEE青犀视频开发的多平台支持视频RTSPServer组件EasyRTSPServer-win的端口号?
    视频RTSPServer组件EasyRTSPServer-win测试视频无法拉取到流在VLC播放如何修复?
    TSINGSEE青犀视频开发EasyWasmPlayer H265播放器是如何实现视频截图功能的?
  • 原文地址:https://www.cnblogs.com/kuronekonano/p/11794329.html
Copyright © 2011-2022 走看看