太空键盘

全屏浏览

切换布局

为了适应特殊的太空环境,提升宇航员在在太空操作的准确性,宇航员在太空中使用的数字键盘和我们使用的键盘是不一样的。

太空键盘严格的分为左右两个部分:左手负责输入数字 1,2,3,4,5,右手负责输入数字 6,7,8,9,0,宇航员在进入太空之前对于在太空中的键盘输入都会进行严格的训练。

在输入每个数字时,需要花费不同的时间,经过长期的追踪统计,得到数据如下。

对于每次要输入的一串数字。

  1. 输入数字的第一个字符,无论是什么数字,都需要 500 毫秒。

  2. 如果当前输入的数字与上一个输入的数字相同,则需要 301 毫秒。

  3. 如果当前输入的数字与上一个输入的数字不同,但使用相同的手输入,则需要 210 毫秒。

  4. 其他情况下,需要 100 毫秒。

请你编程计算出,如果现在要输入一个很长的数字串 N,根据统计数据,需要多少毫秒。

输入格式:

输入一个数字串 N。

输出格式:

输出一个整数,表示输入数字串 N 所需的总毫秒数。

输入样例:

16673

输出样例:

1211

输入样例:

10

输出样例:

600

输入样例:

126778889112230009967888

输出样例:

5910

样例解释

输入 16673 时:

  1. 输入第一个数字 1,耗时 500 毫秒。

  2. 输入第二个数字 6,与前一个数字不同,且使用了不同的手输入,耗时 100 毫秒。

  3. 输入第三个数字 6,与前一个数字相同,耗时 301 毫秒。

  4. 输入第四个数字 7,与前一个数字不同,使用相同的手输入,耗时 210 毫秒。

  5. 输入第五个数字 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;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值