本文主要是介绍A New Game,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
A New Game
Time Limit: 1000MS Memory limit: 65536K
题目描述
今年集训队有一个RE大神,他特别喜欢RE。当然不只是Runtime Error,还有R和E两个字母,只要和这两个字母有关系的他基本上都喜欢。
所以今天出题的Administrator就制造了这样一种游戏。首先会有n张卡片给出,每张卡片上有一个数。依次将这n张卡片放在一个盘子上,下面的卡片会覆盖上面的卡片。然后会有m个操作,分为两种:
1、 R:这种操作是将新的一张带有数字的卡片放到最上面那张卡片的上面。当然如果一张卡片都没有,它就是第一个。然后输出它下面两张卡片上的数之和。如果它下面卡片个数小于二,有一个输出一个,没有就输出“NONE”。
2、 E:这种操作是将最上面的卡片扔掉,然后输出最上面卡片上的数字与最下面卡片上的数字之差的绝对值。如果删掉后没有数字就输出“NONE”。如果当要删掉卡片时没有卡片则输出“Runtime Error”。
请帮RE大神完成输入数据给出的操作。
输入
输入有多组。每一组第一行为n。第二行为n个数。第三行为m,然后有m行,每行是一个操作。所有数均为正整数且小于10000。
输出
输出m行每行一个数。输出要输出的数。
示例输入
3 1 2 3 8 R 4 E E E E E R 10 R 10
示例输出
5 2 1 0 NONE Runtime Error NONE 10
提示
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>int x;
int main()
{int n,m,i,j,k;int pp[10009];char re;while(~scanf("%d%*c",&n)){x = -1;for(i = 0;i<n;i++){scanf("%d%*c",&pp[++x]);}scanf("%d%*c",&m);while(m--){scanf("%c%*c",&re);if(re == 'R'){scanf("%d%*c",&pp[++x]);if(x>=2)printf("%d\n",pp[x-1] + pp[x-2]);else if(x == 1)printf("%d\n",pp[x-1]);elseprintf("NONE\n");}else if(re == 'E'){if(x == -1)printf("Runtime Error\n");else{x = x-1;if(x == -1)printf("NONE\n");elseprintf("%d\n",abs(pp[x] - pp[0]));}}}}return 0;
}
这篇关于A New Game的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!