【问题描述】
小希打字太慢了,因此他在苦练打字技巧。他用了一个教学 App,可以一个个显示自己打出来的英文单词。
当小希输入一个词时,他需要花0.2 秒输入第一个字母。而对于接下来的每个字母,如果在标 准指法下和前一个字母使用同侧手输入,则需要 0.4 秒;否则只需 0.2 秒。输入一个词所需的时间 为输入每个字母所需时间之和。不过,如果小希之前练过这个词,那么所需的时间可以降为初次 输入时的一半。
小希输入的内容只包含26个英文字符(区分大小写),字符要求按照标准指法规定输入,其中"qwertasdfgzxcvb"这15个字符为左手字符,“yuiophjklnm”这11个字符为右手字符。
给定小希在练习中依次输入的词,请计算小希的总耗时。
【输入形式】
每组数据的第一行包含一个整数 N。接下来 N 行,每行包含一个字符串,代表小希输入的词。
【输出形式】
对于每组数据,输出一行,包含一个整数,代表小希的总耗时,单位为十分之一秒。
【样例输入】
5 fdjkd dFjdk dfD fdjkd KkJjk
【样例输出】
61
【样例说明】
【评分标准】
#include <iostream>
#include <string>
using namespace std;
char R[]={'Y','U','I','O','P','H','J','K','L','N','M','y','u','i','o','p','h','j','k','l','n','m'};
int time(string i);
bool you(char i);
bool zuo(char i);
int main()
{
int T,i,j,l,t=0;
cin>>T;
string *a=new string[T];
for(j=0;j<T;j++)
{
cin.ignore();
cin>>a[j];
for(i=0;i<j;i++)
{
if(a[j]==a[i])
{
l=1;
break;
}
else
{
l=0;
}
}
if(l==1)
{
t+=time(a[j])/2;
}
else
{
t+=time(a[j]);
}
}
cout<<t;
}
int time(string i)
{
int j;
int t=2;
for(j=0;j<i.size()-1;j++)
{
if((you(i[j])&&zuo(i[j+1]))||(you(i[j+1])&&zuo(i[j])))
{
t+=2;
}
else
{
t+=4;
}
}
return t;
}
bool you(char i)
{
int k;
for(int j=0;j<22;j++)
{
if(R[j]==i)
{
k=1;
break;
}
else
{
k=0;
}
}
if(k==1) return true;
else return false;
}
bool zuo(char i)
{
int k;
for(int j=0;j<22;j++)
{
if(R[j]==i)
{
k=1;
break;
}
else
{
k=0;
}
}
if(k==0) return true;
else return false;
}