Problem Description

X在大家的帮助下终于找到了一个妹纸,于是开始了漫漫的追求之路,那么大家猜一猜X能不能追的上呢?

X初始对妹纸有一个心动值,妹纸对X有一个好感值,在追求时发生的的一系列事件中,当X对妹纸的心动值大于等于100,并且妹纸对X的好感值也大于等于100时,X就追上了妹纸。并且不会因为以后两个值低于100的情况而分手。

事件1:两个人一起吃饭,那么心动值和好感值都增加5

事件2:两个人一起逛街,那么心动值和好感值都增加10

事件3:如果X给妹纸买了礼物,那么心动值减少5,好感值增加10

事件4:如果妹纸给X买了礼物,那么心动值增加20,好感值减少5

那么我们猜一猜吧。

Input

第一行输入n(n < 100),表示发生了n个事件。

之后的n行,每行一个字符,表示事件i发生了。(事件1的代号A,事件2的代号B,事件3的代号C,事件4的代号D)

最后一行,输入两个整数k1,k2(0 < k1 < 100 && 0 < k2 < 100),k1表示X对妹纸的心动值,k2表示妹纸对X的好感值。

Output

输出一行。

如果X追上妹子,那么输出”happy!”。

否则,输出”tiantai!” (不含引号) 。

Sample Input

4
A
B
C
D
80 80

Sample Output

happy!

 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>

 int main()
 {
     ;
     ];
     scanf("%d",&z);
     getchar();
     ;i<z;i++)
     {
         scanf("%c",&a[i]);
         getchar();
     }
     scanf("%d %d",&n,&m);
     ;i<z;i++)
     {
         if(a[i]=='A')
         {
             n=n+;
             m=m+;
         }
         else if(a[i]=='B')
         {
             n=n+;
             m=m+;
         }
         else if(a[i]=='C')
         {
             n=n-;
             m=m+;
         }
         else if(a[i]=='D')
         {
             n=n+;
             m=m-;
         }
         printf("%d %d\n",n,m);
         &&m>=)
         {
              f=;

         }

     }
     )
     {
          printf("tiantai!\n");
     }
     else printf("happy!\n");
     ;
 }
非常简单的一道题目,只需要注意字符输入时规避回车的影响每次做完一件事就进行一次判断就可以了

问题在于和我同学讨论的过程中,发现他输入字符的代码是这样的:
     scanf("%d",&z);
     getchar();
     ;i<z;i++)
     {
         scanf("%s",&a[i]);
     }
 
这里对于字符的输入,他使用了%s,而且不需要考虑回车的影响,这看起来是非常奇怪的;
事实上,由于后面是一个字符数组,当使用%s时,会以&a[i]为首地址输入一个字符串 "X\0"(X为大写字母),而在下一次输入时,a[i+1]处储存的'\0'就会被下一个字符串的第一个字符覆盖,在这道题中不会产生影响。

在此程序中定义的字符数组是足够大的,所以不会产生其他影响,当定义的数组大小为临界值时,这种输入方式就会因越界产生崩溃的可能,且当后面的变量为一个字符时,编译器也不会报错(CodeBlocks)。
 

【SDUT】2019SDUTACM第一次选拔赛 F- X的追求道路的更多相关文章

  1. X的追求道路

    X的追求道路 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描写叙述 X在大家的帮助下最终找到了一个妹纸,于是開始了漫漫的追求之路,那 ...

  2. 2016 ccpc 网络选拔赛 F. Robots

    Robots Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Subm ...

  3. 2016级算法第一次练习赛-F.AlvinZH的儿时梦想——机器人篇

    864 AlvinZH的儿时梦想----机器人篇 题目链接:https://buaacoding.cn/problem/868/index 思路 中等题. 判断无限玩耍: \(p\) 的值能够承担的起 ...

  4. windows service自动重启服务

    服务一般都能正常的运行,但有时候也会有一些假死现象,比如公司有一考勤服务就因为依赖于硬件厂家的api, 但厂家api运行一段时间后会默名的假死,引起整个服务假死,因为这一假死现象具有不确定性,所以不太 ...

  5. extern、static、auto、register 定义变量的不同用法

    首先得说明什么叫“编译单元”.每个 .c 文件会被编译为一个 .o 文件,这个就是一个编译单元.最后所有的编译单元被链接起来,就是一个库或一个程序. 一个变量/函数,只要是在全局声明的,链接之后都隐含 ...

  6. CF781D Axel and Marston in Bitland [倍增 矩阵乘法 bitset]

    Axel and Marston in Bitland 好开心第一次补$F$题虽然是$Div.2$ 题意: 一个有向图,每条边是$0$或$1$,要求按如下规则构造一个序列然后走: 第一个是$0$,每次 ...

  7. Python(三)——文件操作

    在我们用语言的过程中,比如要往文件内进行读写,那么势必要进行文件操作,那么咋操作呢?用眼睛直接看么?今天就定个小目标,把文件读写那些事扯一扯 文件操作 把大象放进冰箱分几步? 第一步:打开冰箱 第二步 ...

  8. Python入门-文件操作

    文件读取f = open('D:/工作日常/学生空姐模特护士联系方式.txt', 'r', encoding=‘utf-8’)f.read()f.close()解释file='D:/工作日常/学生空姐 ...

  9. python之初级篇2

    一.数字类型 1)整数 int 类型 - bit_length() # 查询以二进制表示一个数字的值所需的位数 - int.from_bytes(bytes,byteorder) # 返回给定字节数组 ...

随机推荐

  1. 拖动条(SeekBar)的功能与用法

    拖动条和进度条非常相似,只是进度条采用颜色填充来表明进度完成的程度,而拖动条则通过滑块的位置来标识数值——而且拖动条允许用户拖动滑块来改变值,因此拖动条通常用于对系统的某种数值进行调节,比如调节音量等 ...

  2. Appium(五):Desired Capabilities

    1. Desired Capabilities Desired Capabilities简单来说就是一组设置,这些设置可以让测试脚本控制Appium的运行行为.下面就逐个对Desired Capabi ...

  3. Java 包(package)的概念及实例

    包的作用 1.把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用. 2.如同文件夹一样,包也采用了树形目录的存储方式.同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调 ...

  4. Dubbo学习笔记-RPC扩展和本地Mock

    1.Dubbo介绍 Dubbo,一个是一款高性能Java RPC框架.私以为有中文官方文档,就不再重复介绍了 2.RPC扩展-本地存根stub RPC扩展功能:提前效验参数,缓存调用结果,日志记录等等 ...

  5. IPFS学习-内容标识符(CIDs)

    内容标识符(CIDs) 内容标识符也称为CID,是用于指向IPFS中材料的标签. 它不会指示内容的存储位置,但会根据内容本身形成一种地址. CID简短,无论其基础内容的大小如何. CID基于内容的加密 ...

  6. 测试人员必备之 mysql 常用命令学习指南

    1.数据库连接 1.通过命令行连接数据库 [root@localhost ~]# mysql -u root -p Enter password: 输入以上命令,回车后输入密码,回车,出现 mysql ...

  7. LeetCode 按序打印

    第1114题 我们提供了一个类: public class Foo {   public void one() { print("one"); }   public void tw ...

  8. ES6-Proxy,代理

    proxy 代理 Es6 增强 对象和函数(方法)   Proxy用于修改某些操作的默认行为,即对编程语言层面进行修改,属于“元编程”, Proxy意思为“代理”,即在访问对象之前建立一道“拦截”,任 ...

  9. 在Dynamics CRM中使用Bootstrap

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  10. 快速幂取模&快速乘取模

    快速幂取模 即快速求出(a^b)mod c 的值.由于当a.b的值非常大时直接求a^b可能造成溢出,并且效率低. 思路 原理就是基于\(a*b \% c = ((a \% c)*(b \% c))\% ...