这个编程怎么办啊,啊

小可像《博物馆奇妙夜》的主人公一样,在博物馆找到了一份夜间保安的工作。第一天晚上,他收到了一台压花机,要对整个博物馆的展品名称进行打印。压花机是一种可以“打印”塑料带上文字的机器,文本按顺序一个字符一个字符的打印。该设备由一个带有小写英文字母的轮子、一个指向当前字母的箭头和一个打印所选字母的按钮组成。一次移动允许将字母轮顺时针或逆时针旋转一步。最初,箭头指向字母‘ a ’。其他字母的位置如图所示。

img

小可将展品放到底座上后,他必须在塑料胶带上打印其名称并将其贴在相应的展品上。注意:每次转字母轮都是从箭头最初的位置开始。小可担心一些展品可能会活过来并开始攻击他,所以他想尽快把名字打印出来。请你帮助他,为给定的字符串找到打印它所需的轮子的最小旋转次数。

输入描述

输入一个只有小写字母组成的展品名称,字符串长度不超过100

输出描述

输出打印这个字符串所需的最小字母轮的旋转次数

输入样例

lincoln
输出样例

47
提示

a->l 逆时针转11次

l->i 顺时针转3次

i->n 逆时针转5次

n->c 顺时针转11次

c->o 逆时针转12次

o->l 顺时针转3次

l->n 逆时针转2次

我的代码是这样的


#include<bits/stdc++.h>
using namespace std;
int main(){
    string a;
    cin>>a;
    long long cnt=0;
//    long long b=0;
    char c='a';
    for(int i=0; i<a.size(); i++){
        if(a[i]>=c){
            if(a[i]-c<=13){
                cnt+=a[i]-c; 
            }
            else{
                cnt+='z'-a[i]+c-'a';
                if(a[i]=='z'){
                    cnt++;
                }
            }
        }
        else{
            if(c-a[i]<=13){
                cnt+=c-a[i];
            }
            else{
                cnt+='z'-c+a[i]-'a';
                if(c=='z'){
                    cnt++;
                }
            }
        }
        c=a[i];
    //    cout<<cnt-b<<" ";
    //    b=cnt;
    }
    cout<<cnt;
    return 0;
}

样例能对,但只能得49分,怎么办啊

感觉你题目理解有点问题,而且ai不可能小于字符a,你下面的最外面的else就没进去过

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/723121
  • 除此之外, 这篇博客: Educational Codeforces Round 102 (Rated for Div. 2)中的 思路:首先考虑在没有删除的情况下,一系列操作过程中,能变成多少不同的值。x初始为0,随着+±-的变化,会来回反复横跳,那么两个关键点就是最大值和最小值,这说明从最大值到最小值之间的数字,都是在操作过程中出现。所以只需要考虑一个区间内的操作产生的最大最小值。但是题目要删掉,中间一段,剩下两段,也就是要把两段合并起来。画个图其实更好理解。红色的是所有的操作,绿色的是要删除的操作,第二个曲线就是合并之后的x值变化曲线。由图可知。后面那部分合并过来之后,起点就是前面那部分的终点!这就是关键点。然后前面那部分的区间的最大最小值和当前值都很好维护。难的是后面那部分怎么维护。后面那部分,从后往前维护,每到一个点,都认为这个点是零点,然后计算最大值最小值。因为是反着来,可以发现操作曲线是一个与 原操作 关于x轴对称的曲线,所以最大值就是最小值,最小值就是最大值。然后最小值就是 当前点到最小值的距离,最大值就是 当前点到最大值的距离。之所以算距离,是因为,永远认为当前点是0点。所以 距离 才是真正的最大最小值。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    在这里插入图片描述


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^