CodeForces 709C Letters Cyclic Shift

C. Letters Cyclic Shift

time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

You are given a non-empty string s consisting of lowercase English letters. You have to pick exactly one non-empty substring of s and shift all its letters 'z' 

 'y' 

 'x' 

 'b' 

 'a' 

 'z'. In other words, each character is replaced with the previous character of English alphabet and 'a' is replaced with 'z'.

What is the lexicographically minimum string that can be obtained from s by performing this shift exactly once?

Input

The only line of the input contains the string s (1 ≤ |s| ≤ 100 000) consisting of lowercase English letters.

Output

Print the lexicographically minimum string that can be obtained from s by shifting letters of exactly one non-empty substring.

Examples

input

codeforces

output

bncdenqbdr

input

abacaba

output

aaacaba

#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <stdio.h>
#include <algorithm>
#include <string>

using namespace std;
const int maxn=1e5;
char a[maxn+5];
char fun(char x)
{
    char b=x;
    if(x=='a')
        b='z';
    else
        b--;
    return b;
}
int main()
{
    scanf("%s",a);
    int len=strlen(a);
    int l=len-1,r=len-1;
    for(int i=0;i<len;i++)
    {
        if(l==len-1&&a[i]!='a')
            l=i;
        if(l!=len-1&&r==len-1&&a[i]=='a')
            r=i-1;
    }
    for(int i=0;i<len;i++)
    {
        if(i<=r&&i>=l)
            printf("%c",fun(a[i]));
        else
            printf("%c",a[i]);

    }
    printf("\n");
    return 0;
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏乐享123

Javascript设计模式 - 笔记2

13850
来自专栏小樱的经验随笔

Codeforces 708A Letters Cyclic Shift

A. Letters Cyclic Shift time limit per test:1 second memory limit per test:256 m...

360100
来自专栏别先生

Spring的核心之IoC容器创建对象

Spring的Ioc容器,是Spring的核心内容:   作用:对象的创建和处理对象的依赖关系。 Spring容器创建对象有以下几种方式:   1:调...

22950
来自专栏Java后端生活

JavaWeb(十一)JavaBean

20260
来自专栏大前端开发

理解和使用ES6中的Symbol

ES6中引入了一种新的基础数据类型:Symbol,不过很多开发者可能都不怎么了解它,或者觉得在实际的开发工作中并没有什么场景应用到它,那么今天我们来讲讲这个数据...

43530
来自专栏ml

HDUOJ----数塔

数塔 Time Limit : 1000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Oth...

33070
来自专栏用户2442861的专栏

HttpEntity的类型及其使用

  代表底层流的基本实体。通常是在http报文中获取的实体。他只有一个空参的构造方法。刚创建时没有内容,长度为负值。需要通过两个方法,把值赋进去。

1.4K10
来自专栏静默虚空的博客

[spring]03_装配Bean

3.1 JavaBean 3.1.1 JavaBean 是什么 JavaBean 是一种JAVA语言写成的可重用组件。 为写成JavaBean,类必须是具体的和...

21990
来自专栏飞雪无情的博客

Groovy基础

以下内容节选自《Android Gradle权威指南》,更多关于《Android Gradle权威指南》的内容请参见http://yuedu.baidu.com...

15020
来自专栏青青天空树

springboot+security整合3

  这篇讲解如何自定义鉴权过程,实现根据数据库查询出的url和method是否匹配当前请求的url和method来决定有没有权限。security鉴权过程如下:...

55620

扫码关注云+社区

领取腾讯云代金券