Code Forces 567B Berland National Library

本文介绍了一种使用C-C算法解决图书馆自动计数系统的最小阅读室容量问题,通过输入日志记录来确定同时在室内的最大访客数量。详细解释了算法实现过程,包括初始化、读取日志、更新房间人数状态和计算最小容量的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C - C
Time Limit:1000MS    Memory Limit:262144KB    64bit IO Format:%I64d & %I64u

Description

Berland National Library has recently been built in the capital of Berland. In addition, in the library you can take any of the collected works of Berland leaders, the library has areading room.

Today was the pilot launch of an automated reading room visitors' accounting system! The scanner of the system is installed at the entrance to the reading room. It records the events of the form "reader entered room", "reader left room". Every reader is assigned a registration number during the registration procedure at the library — it's a unique integer from1 to 106. Thus, the system logs events of two forms:

  • "+ri" — the reader with registration numberri entered the room;
  • "-ri" — the reader with registration numberri left the room.

The first launch of the system was a success, it functioned for some period of time, and, at the time of its launch and at the time of its shutdown, the reading room may already have visitors.

Significant funds of the budget of Berland have been spent on the design and installation of the system. Therefore, some of the citizens of the capital now demand to explain the need for this system and the benefits that its implementation will bring. Now, the developers of the system need to urgently come up with reasons for its existence.

Help the system developers to find the minimum possible capacity of the reading room (in visitors) using the log of the system available to you.

Input

The first line contains a positive integer n (1 ≤ n ≤ 100) — the number of records in the system log. Next follown events from the system journal in the order in which the were made. Each event was written on a single line and looks as "+ri" or "-ri", whereri is an integer from1 to 106, the registration number of the visitor (that is, distinct visitors always have distinct registration numbers).

It is guaranteed that the log is not contradictory, that is, for every visitor the types of any of his two consecutive events are distinct. Before starting the system, and after stopping the room may possibly contain visitors.

Output

Print a single integer — the minimum possible capacity of the reading room.

Sample Input

Input
6
+ 12001
- 12001
- 1
- 1200
+ 1
+ 7
Output
3
Input
2
- 1
- 2
Output
2
Input
2
+ 1
- 1
Output
1

Hint

In the first sample test, the system log will ensure that at some point in the reading room were visitors with registration numbers1, 1200 and 12001. More people were not in the room at the same time based on the log. Therefore, the answer to the test is 3.


模拟题,开个in数组保存状态。结果是有记录的最大值+没有记录只有'-'的人的数量。


#include <stdio.h>
#include <string.h>
#include <algorithm>
#define N 1000005
using namespace std;
int in[N];
int main()
{
    int n;
    while(scanf("%d",&n)>0)
    {
        memset(in,0,sizeof(in));
        int sum=0;
        int cnt = 0;
        int id;
        char info[20];
        while(n--)
        {
            scanf("%s",info);
            scanf("%d",&id);
            if(info[0] == '+')
            {
                in[id] = 1;
                cnt++;
                sum = max(cnt,sum);
            }
            else
            {
               if(in[id])
               {
                    in[id] = 0;
                    cnt--;
               }
               else
                    sum ++;
            }
        }
        printf("%d\n",sum);
    }
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值