问题描述

一天,小 L 发现了一台支持一下操作的机器:
IN x:将整数 x 入栈
POP:将栈顶元素出栈
ASUB:出栈两个数,将两数差的绝对值入栈
COPY:将栈顶元素(如果有的话)复制一份,入栈
现在小 L 想知道经过给定的 n 次操作之后,栈内所有元素之和是多少。
Notice:这台机器会自动忽略不合法的操作。

★数据输入
第一行一个正整数 n,表示有 n 次操作。
接下来有 n 行,每行一个操作。
0<=n<=1000, 0<=x<=1000

★数据输出
输出这台机器在 n 次操作后, 栈内所有元素之和。

★样例

输入:

4

IN 10

IN 11

ASUB

COPY

输出

2

思路

  用数组模拟栈。应注意非法忽略操作

code

 #include <stdio.h>
#include <stdlib.h>
#include <string.h> #define MAXN 1001 int arr[MAXN]={};
int len=; void in()
{
int num;
scanf("%d",&num);
getchar();
arr[len++]=num;
} void pop()
{
if(len>)
len--;
} void asub()
{
if(len>=)
{
int num = arr[len-]-arr[len-];
arr[len-] = num> ? num : -num;
len--;
}
} void copy()
{
if(len>)
{
arr[len] = arr[len-];
len++;
}
} int getSum()
{
int i,sum=;
for(i=;i<len;i++)
{
sum+=arr[i];
}
return sum;
} //void _disAll()
//{
// int i;
// for(i=0;i<len;i++)
// printf("%d ",arr[i]);
// printf("\n");
//} int main()
{
int i=;
int opnum=;
char op[]={}; scanf("%d",&opnum);
getchar();
for(i=;i<opnum;i++)
{
scanf("%s",op);
if(strcmp(op,"IN")==)
{
in();
}
else if(strcmp(op,"POP")==)
{
pop();
}
else if(strcmp(op,"ASUB")==)
{
asub();
}
else if(strcmp(op,"COPY")==)
{
copy();
}
//else printf("OP ERROR");
// _disAll();
}
printf("%d\n",getSum()); return ;
}

最新文章

  1. IO多路复用之epoll总结
  2. jquery实现图片预加载
  3. paip.广告过滤系统 php 实现
  4. Swift XML解析库 - SwiftyXMLParser
  5. 大数据之ETL设计详解
  6. wx.html2.WebView在 target=&quot;_blank&quot; or rel=&quot;external&quot; 没有反映的解决方法
  7. mac os 显示文件列表命令 ls -a
  8. IE8上传文件时文件本地路径变成&quot;C:\fakepath\&quot;的问题
  9. VBS基础篇 - FileSystemObject对象
  10. Spring整合CXF,发布RSETful 风格WebService(转)
  11. Windows 8.1 归档 —— Step 2 对新系统的少量优化
  12. ARM编译器4字节对齐
  13. Sicily1099-Packing Passengers-拓展欧几里德算法
  14. HTML 5 Audio/Video DOM buffered 属性
  15. android 在EditText中显示表情图片
  16. JS复习:第七章
  17. HTML的语法
  18. javasrcipt的作用域和闭包(二)
  19. vscode编辑Markdown时的贴图工具
  20. LeetCode:151_Reverse Words in a String | 字符串中单词的逆反 | Medium

热门文章

  1. C#异步编程(五)异步的同步构造
  2. ACM学习历程—2016&quot;百度之星&quot; - 资格赛(Astar Round1)
  3. 如何用nodejs启一个前端服务
  4. UGUI技巧
  5. 什么是 PCB 的压适孔
  6. maven打包指定main函数的入口,生成依赖的包
  7. Spring Boot发布和调用RESTful web service
  8. Java基础--压缩和解压缩gz包
  9. mina在spring中的配置多个端口
  10. Java-API:java.util.UUID