A New Game
来源:互联网 发布:商家管理 源码 编辑:程序博客网 时间:2024/06/08 00:35
题目描述
今年集训队有一个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行每行一个数。输出要输出的数。
示例输入
31 2 38R 4EEEEER 10R 10
示例输出
5210NONERuntime ErrorNONE10#include<stdio.h>#include<string.h>#include<math.h>int main(){ int n,a[100000],i,m,k; char g; while(scanf("%d",&n)!=EOF) { memset(a,0,sizeof(a)); for(i=1; i<=n; i++) scanf("%d",&a[i]); scanf("%d",&m); while(m--) { getchar(); scanf("%c",&g); if(g=='R') { n++; scanf("%d",&a[n]); if(n>2) printf("%d\n",(a[n-1]+a[n-2])); else if(n==2) printf("%d\n",a[1]); else printf("NONE\n"); } else if(g=='E') { n--; if(n>=1) printf("%d\n",abs(a[n]-a[1])); else if(n==0) printf("NONE\n"); else if(n<0) {printf("Runtime Error\n");n=0;} } } } return 0; }刚开始时一直没带getchar()导致老是超时,后来上网查了查才知道所以要注意以后碰到回车而且是输入字符的时候要加getchar()吃掉回车
0 0
- A New Stone Game
- A New Game
- A New Game
- A New Game
- A new Graph Game
- HDU1760 A New Tetris Game
- poj1740 A New Stone Game
- POJ A New Stone Game
- 1740 A New Stone Game
- POJ1740 A New Stone Game
- 【poj1740】 A New Stone Game
- [poj1740]A New Stone Game
- hdu3435 A new Graph Game
- A new Graph Game HDU
- poj 1740 A New Stone Game( 博弈)
- POJ 1740 A New Stone Game
- POJ 1740 A New Stone Game
- HDU 3435 A new Graph Game //KM
- 2014年2月12日 sql 题目解析
- 如何在工作线程中更新窗体的UI元素(Dispatcher机制)
- 项目管理中遇到的专业术语
- mocp播放器使用
- hdu-3518-Boring counting
- A New Game
- 记录用。。arm汇编
- 在论坛中出现的比较难的sql问题:23(随机填充问题)
- SVG与perl SVG学习笔记
- JDK8 RC 版发布
- ios之应用数据存储四:CoreData
- WPF命令参数
- 启动startUML时报“System Error. code:1772. RPC服务器不可用”的解决办法
- 使用CAS部署SSO服务的简单实现