zoukankan      html  css  js  c++  java
  • cf #314 B. Berland National Library

    B. Berland National Library
    time limit per test
    1 second
    memory limit per test
    256 megabytes
    input
    standard input
    output
    standard output

    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 a reading 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 aregistration number during the registration procedure at the library — it's a unique integer from 1 to 106. Thus, the system logs events of two forms:

    • "ri" — the reader with registration number ri entered the room;
    • "ri" — the reader with registration number ri 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 follow n 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", where ri 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 test(s)
    input
    6
    + 12001
    - 12001
    - 1
    - 1200
    + 1
    + 7
    output
    3
    input
    2
    - 1
    - 2
    output
    2
    input
    2
    + 1
    - 1
    output
    1
    Note

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

     给出一个图书馆人员进出情况,问图书馆满足题意的最小容量是多少。

    注意在初始之前图书馆里面可能就有人了,也就是说不是所有进入图书馆的人都会被给出。

    我的做法是先统计出图书馆里面初始的人数,开一个布尔数组,初始全为false,如果一个人标记为 false  而且从 图书馆里出来了,就说明这个人初始是在图书馆里的。

    然后就正常模拟,图书馆的人数由初始的和后来的两部分组成。

    /*************************************************************************
        > File Name: code/cf/#314/B.cpp
        > Author: 111qqz
        > Email: rkz2013@126.com 
        > Created Time: 2015年08月06日 星期四 00时23分26秒
     ************************************************************************/
    
    #include<iostream>
    #include<iomanip>
    #include<cstdio>
    #include<algorithm>
    #include<cmath>
    #include<cstring>
    #include<string>
    #include<map>
    #include<set>
    #include<queue>
    #include<vector>
    #include<stack>
    #define y0 abc111qqz
    #define y1 hust111qqz
    #define yn hez111qqz
    #define j1 cute111qqz
    #define tm crazy111qqz
    #define lr dying111qqz
    using namespace std;
    #define REP(i, n) for (int i=0;i<int(n);++i)  
    typedef long long LL;
    typedef unsigned long long ULL;
    const int inf = 0x7fffffff;
    const int N=1E2+5;
    int n;
    int r[N];
    bool vis[1000060];
    char ch[N];
    int main()
    {
        cin>>n;
        char cmd;
        int mx = -1;
        int cur = 0;
        int beforein = 0;
        memset(vis,false,sizeof(vis));
        for ( int i = 0 ; i < n ; i++)
        {
        
        cin>>ch[i]>>r[i];
        if (ch[i]=='+')
        {
            vis[r[i]] = true;
        }
        if (ch[i]=='-')
        {
            if (!vis[r[i]])
            {
            beforein++;
            }
            vis[r[i]] = false;
        }
        }
        mx = beforein;
        memset(vis,false,sizeof(vis));
       // cout<<"beforein:"<<beforein<<endl;
        for ( int i = 0 ; i <n ; i++ )
        {
        if (ch[i]=='+')
        {
            cur++;
            vis [r[i]] =true;
        }
        else
        {
            if (vis[r[i]])
            {
    //        if (vis[1]) cout<<"fuffffffffff"<<endl;
            cur--;
    //        cout<<"r[i]:"<<r[i]<<endl;
            vis[r[i]] = false;
            }
            else
            {
            beforein--;
            }
        }
    //    cout<<"cur:"<<cur<<" beforein:"<<beforein<<endl;   
        if (cur+beforein>mx)
        {
            mx = cur + beforein;
        }
    
        }
        cout<<mx<<endl;
        return 0;
    }
  • 相关阅读:
    gridView 表头自适应高度
    Devexpress GridView 数据格式化显示
    CSharpCodeProvider 生成代码
    浅谈C#中Control的Invoke与BeginInvoke在主副线程中的执行顺序和区别
    关于appdomain, assembly, 进程,线程的概念体会
    所有子线程全部结束的判断
    主线程如何捕获子线程异常
    时间戳与展示时间互相转化
    跨域 jsonp 和 CORS 资料
    之前的前端同事聊天关于百姓网
  • 原文地址:https://www.cnblogs.com/111qqz/p/4706302.html
Copyright © 2011-2022 走看看