全屏浏览
切换布局
为了适应特殊的太空环境,提升宇航员在在太空操作的准确性,宇航员在太空中使用的数字键盘和我们使用的键盘是不一样的。
太空键盘严格的分为左右两个部分:左手负责输入数字 1,2,3,4,5,右手负责输入数字 6,7,8,9,0,宇航员在进入太空之前对于在太空中的键盘输入都会进行严格的训练。
在输入每个数字时,需要花费不同的时间,经过长期的追踪统计,得到数据如下。
对于每次要输入的一串数字。
-
输入数字的第一个字符,无论是什么数字,都需要 500 毫秒。
-
如果当前输入的数字与上一个输入的数字相同,则需要 301 毫秒。
-
如果当前输入的数字与上一个输入的数字不同,但使用相同的手输入,则需要 210 毫秒。
-
其他情况下,需要 100 毫秒。
请你编程计算出,如果现在要输入一个很长的数字串 N,根据统计数据,需要多少毫秒。
输入格式:
输入一个数字串 N。
输出格式:
输出一个整数,表示输入数字串 N 所需的总毫秒数。
输入样例:
16673
输出样例:
1211
输入样例:
10
输出样例:
600
输入样例:
126778889112230009967888
输出样例:
5910
样例解释
输入 16673
时:
-
输入第一个数字
1
,耗时 500 毫秒。 -
输入第二个数字
6
,与前一个数字不同,且使用了不同的手输入,耗时 100 毫秒。 -
输入第三个数字
6
,与前一个数字相同,耗时 301 毫秒。 -
输入第四个数字
7
,与前一个数字不同,使用相同的手输入,耗时 210 毫秒。 -
输入第五个数字
3
,与前一个数字不同,且使用了不同的手输入,耗时 100 毫秒。
总时间为 100+100+301+210+100=1211 毫秒。
数据范围
对于 100% 的数据,满足输入的数字串 N 的长度在 [1,106] 的范围内,且数字串 N 的第 1 位不是数字 0。
代码长度限制
16 KB
时间限制
1000 ms
内存限制
512 MB
栈限制
8192 KB
#include<stdio.h>
#include<string.h>
int hand(char n)
{
if(n>='1' && n<='5')
{
return 1;
}
return 0;
}
int main()
{
char str[1000000];
gets(str);
int sum=500;
for(int i=0;i<strlen(str)-1;i++)
{
if(str[i+1]==str[i])
{
sum+=301;
}
else if(hand(str[i+1])==hand(str[i]))
{
sum+=210;
}
else
{
sum+=100;
}
}
printf("%d",sum);
return 0;
}
标签:数字串,数字,太空,样例,键盘,毫秒,100,输入 From: https://blog.csdn.net/2301_79730971/article/details/143940091