CodeForces 731A-Night at the Museum
题目的意思是说,给定单词和一个初始位置在 a 的字母表转盘,求在转盘上表示出该单词的最小转动数
移动一个单词的间距就是一次转动
是圆盘,所以从一个字母到另一个字母有两种转动方式,顺时针和逆时针,而两者转动数相加刚好是26(字母总数)
每次转动都去顺时针和逆时针中的最小值作为转动数,保存转动后转盘指针停留的字符
代码:
include
include
include
using namespace std;
define MAX_Length 105
char Name[MAX_Length];
int Getmin(int a,int b)
{return a>b? b:a;
}
int main()
{while(cin>>Name)
{
char Index='a';
int Time=0;
int len=strlen(Name);
for(int i=0;i<len;i++)
{
int Distant=fabs(Index-Name[i]);
Time+=Getmin(Distant,26-Distant);
//acout<<Time<<endl;
Index=Name[i]; //保存转盘指针该次停留的字符
}
cout<<Time<<endl;
}
return 0;
}
还没有评论,来说两句吧...