Codeforces 567B Berland National Library
2015-08-07 11:03
309 查看
题目链接:
http://codeforces.com/contest/567/problem/B
官方题解:
To answer the queries correct, we need to know if the person is still in the library. For that purpose we will use in array
of type bool. Also we will store two variables for the answer and ''current state'' (it will store the current number of people in the library). Let's
call them ansand state respectively.
Thus, if we are given query + ai then
we should increase state by one, mark that this person entered the library (in[ai] = true)
and try to update the answer (ans = max(ans, state)).
Otherwise we are given - ai query.
If the person who leaves the library, was in there, we should just decrease state by one. Otherwise, if this person was not in the library (in[ai] == false)
and leaves now, he entered the library before we started counting. It means we should increase the answer by one anyway. Also one should not forget that it is needed to mark that the person has left the library (in[ai] = false).
AC代码:
http://codeforces.com/contest/567/problem/B
官方题解:
To answer the queries correct, we need to know if the person is still in the library. For that purpose we will use in array
of type bool. Also we will store two variables for the answer and ''current state'' (it will store the current number of people in the library). Let's
call them ansand state respectively.
Thus, if we are given query + ai then
we should increase state by one, mark that this person entered the library (in[ai] = true)
and try to update the answer (ans = max(ans, state)).
Otherwise we are given - ai query.
If the person who leaves the library, was in there, we should just decrease state by one. Otherwise, if this person was not in the library (in[ai] == false)
and leaves now, he entered the library before we started counting. It means we should increase the answer by one anyway. Also one should not forget that it is needed to mark that the person has left the library (in[ai] = false).
AC代码:
#include <iostream> #include <cstdio> #include <set> #include <algorithm> using namespace std; set<int> s; int main(){ int n; while(~scanf("%d",&n)){ int maxn = 0; char op; int x; s.clear(); for(int i = 0; i < n; i++){ getchar(); scanf("%c%d",&op,&x); if(op == '+'){ s.insert(x); int t = s.size(); maxn = max(maxn,t); } else{ if(s.find(x) != s.end()) s.erase(s.find(x)); else{ maxn++; //cout<<maxn<<endl; } } } printf("%d\n",maxn); } return 0; }
相关文章推荐
- 利用赛门铁克Symantec Endpoint Protection漏洞渗透企业网络
- 在一个“做电子书必亏钱”的市场,看看中兴阅读怎么玩
- 流动python - 八皇后问题简单解决方案
- iOS 音频格式转换--caf转mp3
- javascript封装 Cookie 应用接口
- 把数转换成length位的二进制字符串
- Wireshark找不到网络接口问题
- C++ Vector
- nice
- MAC 使用 brew 安装 git
- 【JavaScript】--概述
- js生成UUID
- android ListView item 点击设置背景图片需要注意的问题
- mac系统连接android电话
- DOS命令基础,包涵DOS库说明书
- springAOP
- pmap
- 【MongoDB】3.0 配置文件相关介绍
- 一些语言的按行读取文件的代码实现小结
- HDU 5361 In Touch (2015 多校6 1009 最短路 + 区间更新)